【发布时间】:2011-12-01 19:50:51
【问题描述】:
想知道你是怎么做到的吗?
因为每次弹出消息框都点击“确定”非常烦人。
【问题讨论】:
标签: .net vb.net testing messagebox suppress
想知道你是怎么做到的吗?
因为每次弹出消息框都点击“确定”非常烦人。
【问题讨论】:
标签: .net vb.net testing messagebox suppress
理想情况下,将消息框设置为依赖项,以便在单元测试期间对其进行模拟/存根/伪造,如下所示:
public interface IMessageBox
{
Show(...);
}
当然,您需要在 MessageBox 包装类中实现该接口。更多关于 DI:http://en.wikipedia.org/wiki/Dependency_injection
如果现在无法以这种方式重新设计您的应用程序,您可以尝试this approach。
【讨论】:
理想情况下,您的测试将测试您的业务逻辑。我通常将 MessageBox 视为 UI 组件而不是 UI。这需要修改程序流程,以便错误/异常/验证独立于用户通知发生。 IE 依赖于 IDataErrorInfo 而不是属性集上的异常。
在您无法避免并且不想走包装消息框和使用带有 DI 的模拟的路线的情况下,我使用了一种在我的应用程序中设置 Public Shared Property RunSilent As Boolean = False 单例变量的技术来指示应用程序应该静默运行,然后在调用消息框之前检查该属性以仅在我们不静默运行时显示该框。然后在我的单元测试设置中,将静默标志设置为 true。不理想,但有效。
【讨论】: