我已经使用MS Test编写了一个测试方法。我已经为测试目的写了两个断言。我故意让测试用例失败,但我不知道哪个部分失败了。
public void CalculatorConstructorTest()
{
Calculator concreteObject = new Calculator();
Assert.IsTrue(concreteObject == null, "Construction failed");
Assert.IsTrue(concreteObject.Total == 0, "Value should be initially 0");
}
与第一个断言一样,它将失败。此外,我的总数大于0.所以第二个也将失败。但是说其中一个是有效的。那么如何确定哪个断言,我的测试用例失败了?
提前致谢。
答案 0 :(得分:6)
有很多方法可以做到:
尝试调试Test而不是仅运行它。这将导致在失败的断言中引发异常。
您已经为您的断言提供了一些消息,在选择失败的测试后,这些消息将在test-explorers详细信息部分中显示。这样可以更容易地确定哪个测试用例失败(参见下面的屏幕截图)。
正如评论中所指出的那样,尝试在每个测试用例中只有一个断言。这种方式显而易见的断言只是因为测试用例中只有一个断言。
尝试更合适的断言。在您的情况下,您可以尝试
Assert.IsNull(concreteObject);
Assert.AreEqual(0, concreteObject.Total);
它还会通过提供更精确的自动消息告诉您哪两个断言失败,如下面的屏幕截图所示:
然而,屏幕截图显示,即使我们在测试用例中有2个断言,但只有一个被标记为失败。第二个也会失败,但由于测试在第一个失败的断言时停止,我们在第一个断言成功之前不会看到。这就是为什么我总是会在每个测试用例中使用一个断言。
答案 1 :(得分:0)
尝试调试测试以查看哪个部分失败。