2
A
回答
2
理想的情況下,消息框被設置爲一個依賴,以便它可以被嘲笑/存根/單元測試過程中僞造的,是這樣的:
public interface IMessageBox
{
Show(...);
}
當然,你將需要實現的接口在你的MessageBox包裝類中。更多關於DI的信息:http://en.wikipedia.org/wiki/Dependency_injection
如果現在不可能用這種方法重新設計您的應用程序,您可以嘗試this approach。
0
理想情況下,您的測試將測試您的業務邏輯。我通常將MessageBox視爲UI組件而不是UI。這需要修改程序流程,以便錯誤/例外/驗證獨立於用戶通知發生。 IE依靠IDataErrorInfo而不是屬性集上的異常。
如果你無法避免它,並且不想走包裝消息框和使用模擬DI的路線,我已經使用了在我的應用程序中設置一個Public Shared Property RunSilent As Boolean = False
單例變量的技術,以指示應用程序應該運行沉默,然後在調用該消息框之前檢查該屬性,以便僅在未運行沉默時才顯示該框。然後在我的單元測試設置中,將silent標誌設置爲true。不理想,但有效。
相關問題
- 1. 測試期間抑制std.err
- 2. infragistics試用版的抑制消息框
- 3. 消息框彈出時間
- 4. 如何從菜單彈出消息框?
- 5. WPF和MVVM - 單元測試和彈出消息框或對話框
- 6. 抑制slf4j調試消息
- 7. 單元測試幫助。如何測試消息輸出到控制檯?
- 8. 抑制PowerShell輸出消息
- 9. 單元測試消息
- 10. 如何在變量賦值期間抑制PowerShell錯誤消息
- 11. 彈出消息框
- 12. 單元測試期間出錯
- 13. 警告消息/彈出日期/時間
- 14. 提升單元測試框架:如何顯示每個測試套件消息
- 15. 如何在單元測試中抑制Spark記錄?
- 16. 如何在測試中抑制FuncUnit單元錯誤?
- 17. 在Visual C代碼中抑制libtiff彈出消息
- 18. OPA5測試框架中的消息Toast彈出文本如何驗證?
- 19. pytest:如何在單元測試期間強制引發異常?
- 20. 嘗試彈出消息框時Java框消失?
- 21. 單元測試安全的彈簧休息控制器
- 22. 如何抑制FeedParser INFO消息
- 23. 單元測試異常消息
- 24. 空測試單元失敗消息
- 25. .NET單元測試 - Assert.IsTrue消息?
- 26. 單元格值更改時彈出消息框
- 27. 如何抑制WebKit的消息在rspec的輸出
- 28. 單元測試和VB.NET
- 29. 如何編寫好的單元測試消息
- 30. VS2008單元測試:如何包含帶有「成功」的消息
+1,但是請不要走Windows鉤子方法。如果你有遺留代碼,你不能重構,但想測試,看看Typemock。 – TrueWill