【发布时间】:2016-12-30 16:57:41
【问题描述】:
希望这很简单,但我一直在努力解决这个问题。
如果我有一个简单的类,它的方法应该做某事,然后当某些值处于某种状态时通过 MessageBox.Show("") 显示一个消息框,我该如何编写一个测试/测试可以检测消息框是否按预期显示和/或未按预期显示?
【问题讨论】:
-
我会隐藏在界面后面显示消息框。然后模拟那个接口并在你的模拟实现中创建一个计数器或类似的东西。
-
那是不是单元测试。这就是 UI 测试。您可以使用 Accessibility API 或 Visual Studio 的 UI 测试项目(使用 Accessibility API)
-
你能分享一下你想测试的方法和你开始编写的潜在单元测试吗?
-
您不需要测试 MessageBox.Show 方法,因为它来自框架。您需要测试您的代码是否采用正确的路径并将正确的值传递给 Show() 方法。所以模拟接口是进行单元测试的正确方法。
-
@Dan 如果您使用 MVVM 或类似模式将 UI 与业务代码分开,那会更好。通过这种方式,您可以确保控制器/模型/任何东西发出正确的通知,并使用更简单的 UI/集成测试来确保您的 UI 显示适当的内容以响应这些通知
标签: c# unit-testing messagebox