在不使用 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);
}
我遇到的挑战是,在使用 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);
}