如何使用AutoFixture填充方法的返回值

时间:2014-11-12 09:45:46

标签: autofixture nsubstitute

我想以非确定性方式自动生成方法的返回值,即每次调用/测试运行时,我都希望方法返回随机值。目前它总是返回方法调用的默认值:

    public interface IReturn
    {
        bool BoolMethod();
        int IntMethod();
    }

    [Fact]
    public void AllReturnsFromAutofixtureMethodsAreFalse()
    {
        IFixture fixture = new Fixture().Customize(new AutoNSubstituteCustomization());
        IEnumerable<IReturn> theBools = fixture.CreateMany<IReturn>();
        Assert.True(theBools.All(tb => tb.BoolMethod() == false));
        Assert.True(theBools.All(tb => tb.IntMethod() == 0));
    }

在像this这样的问题中,人们可以找到一种方法来实现类似的属性,但不是方法。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我没有使用 AutoFixture NSubstitute 自定义,但是通过类比 Moq 库,似乎 AutoConfiguredNSubstituteCustomization 类应该用来实现你想要的高级AutoFixture伪装行为。使用它可以自动生成存根方法的结果,也可以创建模拟对象链,将冻结的对象注入链中,等等。