我最近开始从事一个项目,我想尝试行为驱动开发。我选择 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 上的内容才能完成此测试?
Specflow 无法自行自动化您的 UI。SpecFlow 是一个 BDD 框架,它允许您使用Gherkin 语法编写测试(SpecFlow 是 Gerkin 的 .Net 实现)并为您执行它们。但是,您必须实现将执行每个步骤所需的操作的代码。
您需要使用 Web UI 测试框架来自动化 Specflow 场景中的 UI 步骤。此类场景的示例有Selenium、WatIn等
编辑
抱歉,误读了这个问题,您没有进行 Web UI 自动化,而只是进行 UI 自动化,所以我假设您需要一个桌面 UI 框架(不清楚您正在运行的环境,但我假设是 Windows)。我知道的是White,尽管您也可以使用microsoft UI 测试框架编码的 UI。但同样的原则也适用。
选择框架后,您需要将相关操作插入到每个specfloe步骤中,以便在每个步骤中执行所选操作。
不过,请不要犹豫,恕我直言,SpecFlow 是一个出色的框架,从长远来看,您不会后悔采用 BDD 方法。
| 归档时间: |
|
| 查看次数: |
5099 次 |
| 最近记录: |