簡體   English   中英

MS測試斷言檢查

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM