使用OmitAutoProperties进行AutoFixture自定义无法正常工作

问题描述 投票:0回答:1

我正在使用带有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>();
        }

我错过了什么?

c# unit-testing nunit autofixture
1个回答
0
投票

好的,在深入了解AutoFixture文档后,我找到了解决方案:

代替:

fixture.Customizations.Add(orderReceivedContractItem);

我不得不这样做:

fixture.Register(() => orderReceivedContractItem.Create());

© www.soinside.com 2019 - 2024. All rights reserved.