2013-05-13 142 views
0

嗨想问一个奇怪的问题。它关于测试WPF应用程序。防止窗口打开

我目前的测试对象是一个自发打开信息对话框的WF应用程序。这些对话框是模态的,每次都可以打开。这对于在该应用程序上运行的自动化测试非常令人不安。无论我的测试人员何时访问可视化树并尝试访问GUI(如调用按钮等),都可能发生这样的对话窗口打开,其模式阻止GUI并使测试失败。

解决这个问题的一个想法是防止打开这些对话框。我无法直接更改被测应用程序的行为,但我可以订阅所有窗口事件(如初始化,加载,渲染等)。我想使用其中的一个事件来阻止窗口打开并以模态方式阻止GUI。

我尝试使用加载的事件,因为它是实际显示窗口之前的最后一个事件,但在相应的窗口上调用Close()会导致崩溃。我也尝试了Hide()...这可以防止窗口变得可见,但GUI仍然被不可见的对话框阻塞。

有人有一个想法如何我可以有效地防止WPF窗口/对话框打开或至少从模块上阻止GUI?

+1

即使你可以阻止它,你仍然必须提供具有确定的对话框返回值/取消/重试/。 .. 纽扣。无论如何,这里唯一真正的解决方案是显而易见的:应该修改源代码,以便使用最终由某个DI框架提供的类似于IModelDialogService的内容。然后,在运行测试时,您提供的服务不会执行任何操作。 – stijn 2013-05-13 08:47:09

+0

嗯......那些信息性的自发性对话框没有任何其他按钮,然后是标准关闭按钮和“确定”按钮。所有类似“重试”或“取消”等对话框都不会自动打开,并且可以系统地进行预期和处理(我已经这样做了)。 这样的基本对话框没有办法吗? – Silicomancer 2013-05-13 08:58:54

回答

0

如果使用dialogservice你对话,你可以简单地嘲笑这对您的测试

+0

不幸的是,他们将修改我的测试应用程序的可能性非常小。所以一个不需要AUT修改的方法会好很多。 – Silicomancer 2013-05-13 13:10:10