簡體   English   中英

單元測試顯示輸出

[英]Unit Testing show output

我搜索單元測試工具,我發現合適的一個是NUnit,我認為它很好,但我的問題是這個工具只顯示測試方法結果(通過或失敗),我需要顯示不僅通過或失敗輸出。如何使用NUnit顯示輸出或是否還有其他單元測試工具?如果不支持,請建議我如何解決它。

歡迎所有想法

在NUnit的底部欄上,您可以單擊“文本輸出”,它將顯示所有調試和控制台輸出。

管道System.Console的輸出將適用於NUnit,但它不是您的最佳選擇。

對於傳遞測試,您不需要查看控制台輸出以驗證測試是否已通過。 如果你是,你做錯了。 測試應該是自動化和可重復的,無需人為干預。 手動驗證不會擴展並產生誤報。

另一方面,具有用於失敗測試的控制台輸出是有幫助的,但是它將僅提供可以通過附加調試器來推斷的信息。 將控制台日志記錄添加到您的應用程序中需要付出很多額外的努力。

相反,請確保您的錯誤消息有意義。 編寫測試時,請確保您的斷言是明確的。 始終嘗試使用與您聲明的對象非常吻合的斷言,並提供解釋測試重要性的失敗消息。

例如:

// very bad
Assert.IsTrue( collection.Count == 23 );

當測試失敗時,上述斷言並沒有提供太多幫助。 當NUnit格式化斷言的輸出時,這個斷言對你沒有幫助,因為它會說“ 期待<True>但是<False> ”。

更合適的斷言將提供更有意義的測試失敗。

// much better
Assert.AreEqual(23, collection.Count, 
               "There should be a minimum of 23 items by default.");

這提供了一個更有意義的失敗消息: “期待<23>但是<0>:默認情況下應該至少有23個項目。

在提出問題之后,這篇文章是loooooong,但是想要插入。是的,你可以在單元/集成測試中完成很多工作,並且可能完成你需要的大部分工作。 所以,我同意,盡可能多地在你的測試方法中做。

但有時,提供一些輸出是有用的。 特別是如果您需要進一步驗證結果,並且無法通過單元測試完成驗證。 想想您的開發/測試環境沒有或有限訪問權限的外部系統。

例如,假設您正在使用webapi創建聲明,而響應是新的聲明編號。 但是api沒有公開方法來獲取聲明,並且您需要驗證在進行webapi調用時創建的其他一些數據。 在這種情況下,您可以使用輸出的索賠號手動檢查遠程系統。

FWIW

這取決於您希望從測試中輸出數據的位置。 我相信你從File, Log, Console, Debug輸出中提到了另外一些東西。 作為替代方案, NUnit允許在常規測試輸出流中輸出任何消息,只需使用以下實用程序方法:

為了成功的測試

Assert.Pass( string message, object[] parms );

對於測試失敗

Assert.Fail( string message, object[] parms );

更多細節見這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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