如何让AutoFixture创建一个> 0的整数,而不是另一个数字?

时间:2015-09-25 11:18:36

标签: c# random int autofixture

我希望AutoFixture生成两个整数,而对于第二个整数,我不希望它为0或前一个生成的数字。有没有办法告诉AutoFixture尊重“要求”。

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

我在这里有什么东西可以忽略吗?

1 个答案:

答案 0 :(得分:7)

这是使用普通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
}