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

本文关键字:数字 另一个 整数 一个 AutoFixture 创建 | 更新日期: 2023-09-27 18:14:28

我希望AutoFixture生成两个整数,对于第二个整数,我不希望它是0,或者之前生成的数字。有没有办法告诉AutoFixture遵守这个"需求"?

RandomNumericSequenceGenerator, I看起来下限是1,所以我可能不需要指定第一个要求。接下来,我正在寻找"播种"选项,但正如这个答案所示,默认情况下,它不会用于数字。

有什么我忽略了的吗?

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

这里有一种使用普通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
}
相关文章: