类AutoFixture.CreateAnonymous <>()我已经做了类似下面的如何在内部构造函数
public class Foo
{
public Bar { get; set; }
}
public class Bar
{
internal Bar(string id)
{}
}
public static class Bars
{
public static class TypeOne
{
public static readonly SimpleBar = new Bar("id-for-type1-simple-bar");
}
}
现在,我在单元测试组件添加了InternalsVisibleTo
我要能访问内部酒吧构造函数,然后我做:
var fixture = new Fixture();
fixture.Register(() => new Bar(fixture.CreateAnonymous<string>()));
var foo = fixture.CreateAnonymous<Foo>();
问:
是“正确”的方式来利用AutoFixture或者是有一个更好的?
“正确”的方法是只测试被测系统的公共API。因此,InternalsVisibleTo充其量只是治疗症状而不是疾病。你不能让构造函数公开吗? – 2012-04-25 16:56:25
@MarkSeemann:我可以,但'Bar'实例的所有可能值都列在'static class Bars'中 - 因此不需要创建其他实例... – Nils 2012-04-25 18:07:40