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

Tie*_*ies 11 c# random int autofixture

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

RandomNumericSequenceGenerator,我看起来下限是1,所以我可能不必指定第一个要求.接下来,我正在查看"种子"选项,但正如此答案中所示,默认情况下它不会用于数字.

有什么东西我在这里俯瞰吗?

Nik*_*nis 12

这是使用普通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
}
Run Code Online (Sandbox Code Playgroud)

以下是使用AutoFixture.Xunit执行此操作的方法:

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

  • 这将有效,但不是AutoFixture的*default*行为的请求行为? (5认同)