SpecFlow和用户界面测试

SpecFlow和用户界面测试,specflow,Specflow,我最近开始从事一个项目,我想尝试行为驱动的开发。我选择SpecFlow作为我的测试框架,因为它是一个C#应用程序。从我在网上读到的关于这个主题的内容来看,BDD优于TDD的一个优点是BDD可以用来测试用户界面。但是,我在使用SpecFlow执行此操作时遇到一些问题。在我的第一次测试中,我想编写以下功能: 用户单击一个按钮,该按钮显示FolderBrowseDialog,选择文件夹后,应用程序将在文件夹中搜索与应用程序相关的文件,并将这些文件加载到应用程序中 下面的场景或多或少是我想写的: Sc

我最近开始从事一个项目,我想尝试行为驱动的开发。我选择SpecFlow作为我的测试框架,因为它是一个C#应用程序。从我在网上读到的关于这个主题的内容来看,BDD优于TDD的一个优点是BDD可以用来测试用户界面。但是,我在使用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上的内容来完成此测试

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

您需要使用web UI测试框架来自动化specflow场景中的UI步骤。这类场景的例子有,等等

编辑

很抱歉误读了这个问题,您没有进行web UI自动化,只是进行UI自动化,因此我假设您需要一个桌面UI框架(不清楚您运行的是什么环境,但我假设是windows)。我知道的一点是,尽管您也可以使用。但同样的原则也适用

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

不过不要拖延,SpecFlow是一个优秀的框架,从长远来看,您不会后悔使用BDD方法