我正在开发一个应用程序来处理用户准备的文本文件,我正在尝试将BDD与Cucumber一起使用。
显然,我可以生成一堆示例文件并编写以下场景:
When I import file_1
Then I see [some data on the screen]
等等,但那些示例文件(它们算作测试夹具吗?)看起来很丑陋,即使我给它们更有意义的名称也不能真正传达场景的实质。
有没有更清晰、更具表现力的解决方案来处理 Cucumber 的文件输入?
这似乎是使用方案大纲的好地方。
https://github.com/cucumber/cucumber/wiki/Scenario-Outlines
Scenario Outline: file importing
When I import <file>
Then I see <data>
Examples:
| file | data |
| file1 | data1 |
| file2 | data2 |
与其专注于如何完成此操作(导入文件),不如专注于使用该功能来说明为什么要这样做。那么,为什么你的用户提供这些数据,他们试图通过要求你处理这些数据来实现什么。
通常,出现在特征中的操作机制是气味,例如
Smelly
When I fill in my password with '123456'
And I fill in my username with 'frank'
Fragrant
When I sign in