我希望AutoFixture生成两个整数,而对于第二个整数,我不希望它为0或前一个生成的数字。有没有办法告诉AutoFixture尊重“要求”。
查看RandomNumericSequenceGenerator
,我看起来像lower limit is 1,因此我可能不必指定第一个要求。接下来,我正在查看“种子”选项,但正如this answer中所示,默认情况下它不会用于数字。
我在这里有什么东西可以忽略吗?
答案 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
}