C# NUnit创建的测试实例比添加的参数多

C# NUnit创建的测试实例比添加的参数多,c#,.net,.net-core,nunit,C#,.net,.net Core,Nunit,我对NUnit创建的测试实例比添加的参数多的问题有意见 排序状态枚举: public enum SortingState { None, Ascending, Descending, } 测试代码: [Theory] [TestCase(SortingState.Ascending)] [TestCase(SortingState.Descending)] public void SortReportCodeList(SortingSta

我对NUnit创建的测试实例比添加的参数多的问题有意见

排序状态
枚举:

public enum SortingState
{
    None,
    Ascending,
    Descending,
}
测试代码:

    [Theory]
    [TestCase(SortingState.Ascending)]
    [TestCase(SortingState.Descending)]
    public void SortReportCodeList(SortingState sortingState)
    {}
根据上面的代码,应该为
SortReportCodeList
创建2个测试用例,但是其中有3个,第3个使用
None
枚举值。

我再次尝试运行测试,重建解决方案,重新启动VS,从Windows控制台运行测试,所有这些都没有效果。
原因是什么?它是否与NUnit相关,或者我应该在VS中查找问题?

您已经将此测试方法作为NUnit
理论,我想知道这是否是您真正想要的

如果删除
[Theory]
,则只会得到指定的两种情况。理论在不同的地方寻找它们的测试用例,甚至可能为您发明一些用例,所以不要使用它们,除非这是您想要的

例如,您的类中可能有这样的声明

SortingState nosortingall=SortingState.None;
如果你这样做了,
理论将以此为例。根据您正在使用的NUnit框架版本,它还可能获取任何排序状态数组

如果您没有使用
假设筛选测试用例,那么您可能一开始就不想要
理论。只有当你实际有一个“理论”来证明,即一个假设时,才应该使用理论

下面是一个“理论”的示例,可以使用
[理论]
实现:

给定一个非负实数,该数的平方根乘以其本身即为原始数

要实现,您可以使用随机数或让
理论
查找要使用的实数。然后,您可以使用
aspect.That
来消除负数,并将测试本身作为断言来实现


但是,我强烈怀疑您根本不需要
理论,所以请尝试删除该属性。:-)

删除[理论]有助于解决此问题,谢谢。