2013-05-13 115 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