我正在使用C#在VS 2008中开展一些单元测试项目,我为单元测试创建了一个简单的小方法?
public int addNumber(int a, int b)
{
return a + b;
}
我创建了一个单元测试方法,如下所示,
[TestMethod()]
public void addNumberTest()
{
Mathematical target = new Mathematical(); // TODO: Initialize to an appropriate value
int a = 4; // TODO: Initialize to an appropriate value
int b = 2; // TODO: Initialize to an appropriate value
int expected = 0; // TODO: Initialize to an appropriate value
int actual;
actual = target.addNumber(a, b);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
但是当我尝试运行unittest项目时,
我收到一条不确定的消息。我的问题是
答案 0 :(得分:2)
您需要确定要考虑通过的单元测试的标准。对单元测试通过的内容没有全面的答案。规范最终决定了通过单元测试的构成。
如果您正在测试的方法确实只是添加两个数字,那么Assert.AreEqual(expected,actual)
可能足以进行此特定的单元测试。您可能还想检查Assert.IsTrue(expected>0)
这可能是您可以进行此单元测试的另一个断言。
你会想要再次测试它,但使用其他值,如底片,零和非常大的数字。
Inconclusive
方法的单元测试不需要addNumber
运算符。在处理对象和线程时,assertion会更有用。像你一样调用Inconclusive
断言将始终失败并始终返回传入其中的字符串。