在不使用 InlineAutoData 的情况下使用 InlineAutoData 时的额外测试 运行

Extra test run when using InlineAutoData without using InlineAutoData

我遇到的挑战是,在使用 InlineAutoData 时,测试也是 运行 且具有随机值。背景是我正在使用遵循规范所需的一些输入来测试转换。我对随机数据不感兴趣。

以下测试运行s 两次。一次是 InlineAutoData 一次是随机字符串。测试被故意简化并且在随机数据 运行:

上失败
[Theory, GeneralTransferTestConventions]
[InlineAutoData("Allowed", "Allowed")]
public void Testing(string test1Data, string test2Data)
{
    Assert.Equal(test1Data, test2Data);
}

我的问题是是否有办法避免使用随机数据进行测试 运行 以及如何做到这一点?

删除 AutoFixture 东西集成:

[Theory]
[InlineData("Allowed", "Allowed")]
public void Testing(string test1Data, string test2Data)
{
    Assert.Equal(test1Data, test2Data);
}

这是一个纯粹的 xUnit.net 测试,完全是确定性的。

请注意,如果只有一组测试用例,则没有理由对测试进行参数化,因此要么添加更多 InlineData 个测试用例:

[Theory]
[InlineData("Allowed", "Allowed")]
[InlineData("foo", "foo")]
[InlineData("bar", "bar")]
public void Testing(string test1Data, string test2Data)
{
    Assert.Equal(test1Data, test2Data);
}

或使其成为 'normal' 测试:

[Fact]
public void Testing()
{
    var test1Data = "Allowed";
    var test2Data = "Allowed";
    Assert.Equal(test1Data, test2Data);
}