我希望AutoFixture生成两个整数,对于第二个整数,我不希望它为0或前一个生成的数字。有没有一种方法可以告诉AutoFixture兑现该“要求”。

查看RandomNumericSequenceGenerator,我看起来像lower limit is 1,所以我可能不必指定第一个要求。接下来,我正在查看“种子”选项,但是如this answer所示,默认情况下,它将不用于数字。

我在这里有东西可以俯瞰吗?

最佳答案

这是使用普通AutoFixture做到这一点的一种方法:

[Fact]
public void GenerateTwoDistinctNonZeroIntegersWithAutoFixture()
{
    var fixture = new Fixture();
    var generator = fixture.Create<Generator<int>>();

    var numbers = generator.Where(x => x != 0).Distinct().Take(2);
    // -> 72, 117
}

这是使用AutoFixture.Xunit做到这一点的一种方法:

[Theory, AutoData]
public void GenerateTwoDistinctNonZeroIntegersWithAutoFixtureXunit(
    Generator<int> generator)
{
    var numbers = generator.Where(x => x != 0).Distinct().Take(2);
    // -> 72, 117
}

关于c# - 如何让AutoFixture创建一个大于0的整数,而不是另一个数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32781002/

10-11 11:33