我想使用自動混合來創建一個對象,但他們是某些屬性,我想總是默認(而其餘的可以自動生成)。但是,每當我設置自定義時,它會在我使用自定義創建時被覆蓋。如何使用AutoFixture在保留類型自定義的同時使用自定義屬性進行構建?
void Main()
{
var fixture = new Fixture();
fixture.Customize<Person>(composer => composer.With(p => p.Name, "Ben"));
var person = fixture.Build<Person>()
.With(p => p.DateOfBirth, new DateTime(1900, 1, 1))
.Create();
/* RESULT OF person below
Name null
DateOfBirth 1/1/1900
StreetAddress StreetAddressafd6b86b-376a-4355-9a9c-fbae34731453
State State019e867b-ac5e-418f-805b-a64146bc06bc
*/
}
public class Person
{
public string Name { get; set;}
public DateTime DateOfBirth { get; set;}
public string StreetAddress { get; set;}
public string State { get; set;}
}
「Name」和「DateOfBirth」屬性自定義不衝突,所以我不知道爲什麼Name最終爲null。我希望名字是「本」。 ?
我怎樣才能得到它這樣既定製應用(即名稱=「奔」和出生日期= 1/1/1900
「AllPersonsAreNamedBen」是否將[重寫](http://blog.ploeh.dk/2012/07/31/TheorderofAutoFixtureCustomizationsmatter)'AllPersonsAreBornIn1900'? –
我站好了。由於這兩個定製工作在相同的類型,他們絕對會。感謝您的呼喚!這是AutoFixture的一個方面,時不時地咬我 - 我希望我可以像增量那樣組合多個自定義,所以*壞*,我有時會忘記它是不可能的。 –
我更新了我的答案以糾正錯誤。 –