我正在尝试运行一些测试来使用 XUnit 检查我的后缀按位算法。似乎带有 [InlineData] 的 [Theory] 可以完美地解决这个问题,但它似乎并没有像我希望的那样工作。
[Theory]
// a && b
[InlineData(new object[] { false, false, BitwiseOperator.And }, false)]
[InlineData(new object[] { true, false, BitwiseOperator.And }, false)]
[InlineData(new object[] { false, true, BitwiseOperator.And }, false)]
[InlineData(new object[] { true, true, BitwiseOperator.And }, true)]
public void Test(IEnumerable<object> tokenPrimitives, bool expectedResult)
{
//Run test
}
当 NCrunch 测试运行程序(或者它是否使用 Visual Studio 测试运行程序?)扫描测试时,它只从四个 [InlineData] 中挑选出两个测试。它似乎总是一个expectedResult = false 和一个expectedResult = true。乍一看,扫描器似乎将所有带有 expectedResult = false 的测试视为相等,因此忽略了其他两个。
所以我的问题是:我可以为此使用 [InlineData] 吗?如果可以,如何使用?否则我对想法持开放态度。我一直在尝试使用 [MemberData],但我也有类似的挫败感。它似乎运行了我所有的测试,但控制台只显示一个测试而不是 4 个,这使得很难确定哪个测试失败。我在另一个 Stackoverflow 问题中找到了解决方案,但我还没有让它适用于这种情况。