鑑於兩類:定製AutoFixure使用FromSeed導致異常
class Foo
{
...
}
class Bar
{
public Foo FooBar { get; set; }
}
我已經設置了以下測試:
void Test()
{
var fixture = new Fixture();
fixture.Customize<Foo>(x => x.FromSeed(TestFooFactory));
var fooWithoutSeed = fixture.Create<Foo>();
var fooWithSeed = fixture.Create<Foo>(new Foo());
var bar = fixture.Create<Bar>(); //error occurs here
}
Foo TestFooFactory(Foo seed)
{
//do something with seed...
return new Foo();
}
我能有和沒有種子值創造直接Foo
對象沒有任何問題。但是,一旦我嘗試創建一個具有Foo
屬性Bar
對象,我得到一個ObjectCreationException
:
裝飾ISpecimenBuilder無法創建基於請求的樣本:富。如果請求表示接口或抽象類,則可能發生這種情況;如果是這種情況,請註冊一個可以根據請求創建標本的ISpecimenBuilder。如果這發生在強類型的Build表達式中,請嘗試使用IFactoryComposer方法之一提供工廠。
我期望TestFooFactory
獲得通過創造Bar
期間null
種子值,就像當我創建Foo
沒有種子值。我做錯了什麼,或者這可能是一個錯誤?
在我的實際場景中,我想定製AutoFixture如何在將種子值傳遞給某些對象時使用種子值,但如果未提供種子,我仍然希望AutoFixture默認爲正常行爲。
交叉傳遞給GitHub:https://github.com/AutoFixture/AutoFixture/issues/467 –