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