我正在使用带有NUnit的AutoFixture,当我使用OmitAutoProperties
时,属性仍然会自动填充。这是我的自定义的样子:
public class ContractItemCustomization : ICustomization
{
public void Customize(IFixture fixture)
{
var orderReceivedContractItem = fixture.Build<ContractItem>()
.OmitAutoProperties()
.With(x => x.Status, new ContractStatus
{
ContractLifecycleStatus = ContractLifecycleStatus.ORDER_RECEIVED
});
fixture.Customizations.Add(orderReceivedContractItem);
}
}
以下是我使用自定义的方法:
[SetUp]
public void Setup()
{
fixture = new Fixture().Customize(
new CompositeCustomization(
new ContractItemCustomization()));
contractItem = fixture.Create<ContractItem>();
}
我错过了什么?
好的,在深入了解AutoFixture文档后,我找到了解决方案:
代替:
fixture.Customizations.Add(orderReceivedContractItem);
我不得不这样做:
fixture.Register(() => orderReceivedContractItem.Create());