類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