【问题标题】:AutoFixture customization with OmitAutoProperties not working使用 OmitAutoProperties 进行 AutoFixture 自定义不起作用
【发布时间】:2019-09-01 01:00:43
【问题描述】:

我正在使用带有 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】:

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

    代替:

    fixture.Customizations.Add(orderReceivedContractItem);

    我必须这样做:

    fixture.Register(() =&gt; orderReceivedContractItem.Create());

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多