SpecFlow 和用户界面测试

Dav*_*vid 3 specflow

我最近开始从事一个项目,我想尝试行为驱动开发。我选择 SpecFlow 作为我的测试框架,因为它是一个 C# 应用程序。根据我在网上阅读的有关该主题的内容,BDD 相对于 TDD 的一个优点是 BDD 可用于测试用户界面。但是,我在使用 SpecFlow 执行此操作时遇到了一些麻烦。对于我的第一次测试,我想编写以下功能:

用户单击一个按钮,会出现一个文件夹浏览对话框,选择一个文件夹后,应用程序会在该文件夹中搜索与应用程序相关的文件,并将这些文件加载​​到应用程序中。

下面的场景或多或少是我想写的:

 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
Run Code Online (Sandbox Code Playgroud)

我需要什么代码才能让 SpecFlow 单击该 FolderBrowseDialog 上的内容才能完成此测试?

Sam*_*der 5

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

您需要使用 Web UI 测试框架来自动化 Specflow 场景中的 UI 步骤。此类场景的示例有SeleniumWatIn

编辑

抱歉,误读了这个问题,您没有进行 Web UI 自动化,而只是进行 UI 自动化,所以我假设您需要一个桌面 UI 框架(不清楚您正在运行的环境,但我假设是 Windows)。我知道的是White,尽管您也可以使用microsoft UI 测试框架编码的 UI。但同样的原则也适用。

选择框架后,您需要将相关操作插入到每个specfloe步骤中,以便在每个步骤中执行所选操作。

不过,请不要犹豫,恕我直言,SpecFlow 是一个出色的框架,从长远来看,您不会后悔采用 BDD 方法。