2014-09-29 86 views
2

我最近开始研究一个我想尝试行为驱动开发的项目。我选择了SpecFlow作为我的测试框架,因为它是一个C#应用程序。根据我在网上关于这个话题的阅读,BDD在TDD上的一个优势是BDD可以用来测试用户界面。但是,我在使用SpecFlow时遇到了一些麻烦。对于我的第一个测试,我想写下列功能:SpecFlow和用户界面测试

用户单击一个按钮,显示一个FolderBrowseDialog,选择一个文件夹后,应用程序搜索该文件夹中与该应用程序相关的文件,并将这些文件加载​​到应用。

下列情况是或多或少我想写什么:

Scenario: Add Model 
Given I am on the main screen 
When I click Add Model 
And select a folder 
And the folder contains a model 
Then the model is loaded into the application 

什么代码,我需要有SpecFlow点击该FolderBrowseDialog东西来完成这个测试?

回答

3

Specflow无法自动使用您的用户界面。 SpecFlow是一个BDD框架,允许您使用Gherkin syntax(SpecFlow是Gerkin的.Net实现)编写测试,并为您执行它们。但是,您必须实现将执行每个步骤所需操作的代码。

您需要使用Web UI测试框架来自动化您的specflow场景中的UI步骤。这样的场景的例子是SeleniumWatIn

编辑

对不起误读的问题,你是不是做网站UI自动化,但只是UI自动化,那么你需要一个桌面UI框架,我认为(它不清楚你在运行什么environement,但我会承担窗户)。我知道的一个是White,但您也可以使用microsoft UI testing framework coded UI。尽管同样的原则适用。

一旦你选择了一个框架,那么你需要将相关操作插入到每个specfloe步骤中,以便在每个步骤中执行选定的操作。

尽管不要拖延,SpecFlow是一个很好的框架恕我直言,你不会后悔从长远来看下BDD appraoch。