如何在单元测试VB.net期间禁止弹出消息框

时间:2011-10-05 20:51:31

标签: .net vb.net testing messagebox suppress

想知道你是怎么做到的?

每次弹出一个消息框时,点击“确定”非常烦人。

2 个答案:

答案 0 :(得分:2)

理想情况下,消息框设置为依赖项,以便在单元测试期间对其进行模拟/存根/伪造,如下所示:

public interface IMessageBox
{
  Show(...);
}

当然,您需要在MessageBox包装类中实现该接口。关于DI的更多信息:http://en.wikipedia.org/wiki/Dependency_injection

如果现在无法以这种方式重新设计您的应用程序,您可以尝试this approach

答案 1 :(得分:0)

理想情况下,您的测试将测试您的业务逻辑。我通常将MessageBox视为UI组件而不是UI。这需要修改程序流,以便独立于用户通知发生错误/异常/验证。 IE依赖于IDataErrorInfo而不是属性集上的异常。

如果你无法避免它并且不想走包装消息箱和使用带有DI的模拟的路线,我已经使用了在我的应用程序中设置Public Shared Property RunSilent As Boolean = False单例变量的技术指示应用程序应该运行静默,然后在调用消息框之前检查该属性,以便仅在我们未运行静默时显示该框。然后在我的单元测试设置中,将silent标志设置为true。不理想,但有效。