【问题标题】:how to suppress message box from popping up during unit testing VB.net如何在单元测试VB.net期间禁止弹出消息框
【发布时间】:2011-12-01 19:50:51
【问题描述】:

想知道你是怎么做到的吗?

因为每次弹出消息框都点击“确定”非常烦人。

【问题讨论】:

    标签: .net vb.net testing messagebox suppress


    【解决方案1】:

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

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

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

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

    【讨论】:

    • +1,但是请不要使用 Windows 挂钩方法。如果您有无法重构但想测试的遗留代码,请查看 Typemock。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-02
      • 2013-09-10
      • 1970-01-01
      • 2023-03-21
      • 2018-12-02
      • 1970-01-01
      • 2014-03-31
      • 2012-06-06
      相关资源
      最近更新 更多