2012-07-24 38 views

回答

0

嗯,我還沒有嘗試過,但我看不出有什麼問題。通過使用specflow創建方法做一件事說:「用戶按下左右按鍵」與您的代碼會是這樣的

[Given(@"The user presses the about button")] 
public void TheUserPressesTheAboutButton() 
{ 
    this.UIMap.PressAboutButton(); 
} 

您可能需要反覆折騰創建的所有方法,但它不是一個大應對。有一個簡單的指南here。可能是一個小故障的是控制的命名和識別,以便CUIT生成器能夠找到它們。

+0

謝謝你們。你的意見是有幫助的。我們決定繼續使用specflow的編碼UI方法。我正在編寫我自己的基於頁面對象的解決方案來創建腳本..因爲對於第三方wpf控件,編碼UI的默認識別效果不是很好。它的工作到目前爲止... – 2012-09-27 16:09:50

+0

@邏輯曼陀羅第三方控件有非常差的支持..我目前正在使用Cobra-WinLDTP來自動化Infragistics的控件。雖然它需要相當多的編碼,但它還是很不錯的和快速的工具:)乾杯和好運 – t3hn00b 2012-09-28 09:06:35

3

當我讀到這個問題時,我有兩個想法。

首先 - 如果您確實需要通過用戶界面自動執行所有操作。有了像MVVM這樣的體系結構,您就有機會在UI下創建應用程序,並且仍然可以獲得很多測試自動化。例如,針對ViewModels編寫您的步驟定義。 針對用戶界面進行測試很容易造成創建脆弱測試的風險。用戶界面是大多數應用程序變化非常頻繁的一部分。測試用戶界面需要以某種方式處理這個問題(後面會詳細介紹)。其次,對於需要在UI中實現自動化的事情,可以考慮使用White這是UI Automation Library上面的一個很好的面向對象抽象。我已經廣泛地使用它並喜歡它。

任何自動化都要確保在實際的自動化上創建一個抽象,例如驅動程序模式。一個簡單的方法是創建一個屏幕/頁面對象,該對象具有與正在討論的屏幕/頁面交互的屬性和方法。您的步驟定義然後使用這些包裝對象。

保持您的步驟定義更加簡潔,包裝對象變胖。有點像MVC模式中的控制器。更多關於此here

我希望這是有幫助的

+2

要更多地支持這種說法(使用ViewModel層作爲測試的入口點,而不是使用自動化來實現UI)值得記住的是,XAML-to-ViewModel綁定引擎多年來已經從微軟和開發人員社區進行了大量的測試......所以您應該相信這個邏輯是可行的。所以當你推出軟件時,如果你的ViewModel級別測試哈 – SaxonMatt 2012-07-26 15:28:56

0

是。它工作得很好。最大的挑戰在於確定句子結構和Given/When/Then語句,以確保它們一致且可重用。否則,你會得到標籤和5-10個單一的方法。不可維護。

我們使用Specflow進行單元測試MVVM以及其他業務組件。給定的發言將基本上設置模擬數據,然後執行測試:用於經由TFS功能測試(端對端)進行自動化測試

Given I have created a database context 
And it contains the following Books 
|ISBN | Author | Title | 
... 

我也使用specflow。部署數據庫和服務器(使用真實或測試數據),然後針對該服務器/數據庫執行功能測試套件(創建數據,修改數據等)。

相關問題