我有一个数据源,如-4,-3,-3,-2,-1,0,1,2,2,3,4,我有一个功能,这个功能可以捕获重复的数字,例如这个数据源我们有-3,2重复。重复的数字在程序结束时报告。 我找不到好的例子(我花了3个小时)。 我如何使用NUnit实现单元测试,可以测试相同的情况并告诉我结果,如果你有一些例子,它对我来说非常有用。(真的很感激)。
答案 0 :(得分:4)
您可以将TestCase
属性用于简单数据,例如您所描述的内容。
[Test]
[TestCase(new[] { -4, -3, -3, -2, -1, 0, 1, 2, 2, 3, 4 }, new []{-3,2})]
public void YourTest(int[] given, int[] expected)
{ ... }
注意:ReSharper(至少我的版本)不支持像这样的多个测试用例,因此我必须使用NUnit GUI确认多个测试用例。
答案 1 :(得分:2)
首先要做的是 - 进行工作测试。像这样:
[Test]
public void DetectsMinusThreeAndTwo()
{
RepeatingDigitsDetector target = new RepeatingDigitsDetector();
int[] source = new int[] { -4, -3, -3, -2, -1, 0, 1, 2, 2, 3, 4 };
int[] expected = new int[] { -3, -2 };
int[] actual = target.GetRepeats(source);
Assert.AreEqual(expected.Length, actual.Length, "checking lengths");
for (int i = 0; i < expected.Length; i++)
{
Assert.AreEqual(expected[i], actual[i], "checking element {0}", i);
}
}
稍后,您可以开始添加TestCase
或TestCaseSource
属性等内容。但是,如果您尝试进行TDD(如tdd标记所示),则需要从 a 测试开始。
答案 2 :(得分:1)
我会在这个例子中推荐TestCaseSource。一些测试可能会使数据更难在TestCase属性中读取。
答案 3 :(得分:0)
随着测试数据变得复杂,将很难处理。 考虑将数据存储在其他来源(例如excel,json或数据库)中。
我个人喜欢将测试数据存储在嵌入式json文件中。 软件包JsonSectionReader为此提供了良好的支持。