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. WPF和MVVM - 單元測試和彈出消息框或對話框
- 5. 抑制slf4j調試消息
- 6. 單元測試幫助。如何測試消息輸出到控制檯?
- 7. 抑制PowerShell輸出消息
- 8. 單元測試消息
- 9. 如何在變量賦值期間抑制PowerShell錯誤消息
- 10. 彈出消息框
- 11. 警告消息/彈出日期/時間
- 12. 提升單元測試框架:如何顯示每個測試套件消息
- 13. 如何在單元測試中抑制Spark記錄?
- 14. 在Visual C代碼中抑制libtiff彈出消息
- 15. OPA5測試框架中的消息Toast彈出文本如何驗證?
- 16. pytest:如何在單元測試期間強制引發異常?
- 17. 單元測試安全的彈簧休息控制器
- 18. .NET單元測試 - Assert.IsTrue消息?
- 19. 單元測試和VB.NET
- 20. VS2008單元測試:如何包含帶有「成功」的消息
- 21. Python的單元測試如何斷言消息格式
- 22. 如何編寫好的單元測試消息
- 23. 抑制gfortran警告消息
- 24. 彈簧單元測試
- 25. 彈出消息
- 26. 單元測試期間的實體框架錯誤
- 27. Java爲單元測試創建測試JMS消息IBM MQ
- 28. 單元測試在Django。如何從assertRaises()獲取異常消息?
- 29. 如何取消單元測試稱爲時間的功能
- 30. 單元測試日期時間值
+1,但是請不要走Windows鉤子方法。如果你有遺留代碼,你不能重構,但想測試,看看Typemock。 – TrueWill