[英]MS Test assertion checking
我已經編寫了使用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");
}
和第一個斷言一樣,它將失敗。 另外我使Total大於0。因此第二個也將失敗。 但是說其中之一是有效的。 那么,如何確定測試用例失敗的哪個斷言呢?
提前致謝。
有很多方法可以做到這一點:
嘗試調試測試,而不是僅僅運行它。 這將導致在失敗的斷言時引發異常蜂鳴。
您已經為斷言添加了一些消息,選擇失敗的測試后,這些消息將在“ test-explorers”詳細信息部分中可見。 這樣可以更輕松地確定哪個測試用例失敗(請參見下面的屏幕截圖)。
正如評論中指出的那樣,請盡可能在每個測試用例中只有一個斷言。 這樣,顯而易見的是哪個斷言失敗了,僅僅是因為一個測試用例中只有一個斷言。
嘗試有更多合適的斷言。 就您而言,您可以嘗試
Assert.IsNull(concreteObject);
Assert.AreEqual(0, concreteObject.Total);
通過提供更精確的自動消息,這還將告訴您兩個斷言中的哪一個失敗,如以下屏幕截圖所示:
但是,屏幕截圖顯示了很好的結果,即使我們在測試用例中有2個斷言,也只有一個被標記為失敗。 第二個也將失敗,但是由於測試在第一個失敗的斷言處停止,因此直到第一個斷言成功后我們才能看到它。 這就是為什么我總是每個測試用例都主張一個斷言 。
嘗試調試測試以查看哪個部分失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.