【发布时间】:2020-12-19 13:59:35
【问题描述】:
我使用AutoMoqCustomization 来创建带有数据的接口实例。它工作得很好,但现在我需要用我的自定义值覆盖一个成员。这就是我想要做的:
public interface ITest
{
string Test1();
string Test2();
}
class Program
{
static void Main(string[] args)
{
var fixture = new Fixture();
var customization1 = new CompositeCustomization(
new AutoMoqCustomization {ConfigureMembers = true}, new Test2Customization());
var customization2 = new CompositeCustomization(
new Test2Customization(), new AutoMoqCustomization { ConfigureMembers = true });
fixture.Customize(customization1);
//fixture.Customize(customization2);
//fixture.Customize(new AutoMoqCustomization { ConfigureMembers = true });
var test = fixture.Create<ITest>();
Console.WriteLine($"test1 {test.Test1()}");
Console.WriteLine($"test2 {test.Test2()}");
}
private class Test2Customization : ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Customize<Mock<ITest>>(mock => mock
.Do(m => m.Setup(t => t.Test2()).Returns("test2")));
}
}
}
所以在这里我想得到这样的东西:
test1 f057a124-e821-4c24-acaa-ed76a4820e8b
test2 test2
但我明白了
test1
test2 test2
用于自定义 1 和自定义 2。如何实现我想要的行为?
【问题讨论】:
标签: c# .net autofixture