我正在为一个具有过滤器选项集的应用程序工作,以过滤数据。
我想测试我的方法将要工作的每个输入组合。例如,我必须为每个组合编写单元测试,如下所示:
[TestClass]
public class Data_Should_Filter
{
[TestMethod]
public void _For_Category()
{
}
[TestMethod]
public void _For_Product_And_Category()
{
}
[TestMethod]
public void _For_Product_CreationDate()
{
}
}
有没有办法用单一测试来测试每种数据组合。我查看了blog的NUnit测试。有哪些可能的方法来实现这种测试,哪些是支持组合测试的框架。
答案 0 :(得分:2)
是的,可以使用NUnit 2.5及更高版本
[TestCase(12,3,4)]
[TestCase(12,2,6)]
[TestCase(12,4,3)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}
更多信息here
答案 1 :(得分:1)
你没有给出任何你想要自动组合的例子,所以我不得不为这个答案发明它。
NUnit有几种方法可以将数据指定为与测试方法的单个参数相对应的参数,以及组合这些参数的几种方法。
指定参数: * ValuesAttribute * ValueSourceAttribute * RandomAttribute * RangeAttribute
生成以上值的组合: * CombinatorialAttribute(如果你不使用任何东西,这个是默认的) * PairwiseAtribute * SequentialAttribute
示例...
public class HelloWorldController : Controller
{
private readonly ITableRepositories _tableRepository;
public HelloWorldController(ITableRepositories tableRepository)
{
_tableRepository = tableRepository;
}
}
答案 2 :(得分:0)
Nunit肯定有可能:
Warning: Error in dir.create: invalid 'path' argument
Stack trace (innermost first):
58: dir.create
57: dirCreate
56: observerFunc
1: runApp
答案 3 :(得分:-1)
发现此库可用于随机组合测试: FsCheck