【发布时间】:2016-08-06 01:42:30
【问题描述】:
我们正在使用 SpecFlow 进行功能测试,当人工阅读生成的电子邮件并验证所有部分是否符合规范时,它会取代手动测试。问题是场景大纲变得越来越有太多参数
Scenario Outline: generate and send confirmation email
Given I have stored itinerary in '<EmbeddedItinerary>'
When Generate confirmation email
Then section1 should have parameters '<Param1_1>', '<Param1_2>', '<Param1_3>',...
Then section2 should have parameters '<Param2_1>', '<Param2_2>', '<Param2_3>',..
Then section3 should have parameters '<Param3_1>', '<Param3_2>', '<Param3_3>',...
....
例子:
| EmbeddedItinerary | Param1_1| Param1_2| Param1_3| Param2_1| Param2_2| Param2_3| Param3_1| Param3_2| Param3_3|...
| Itinerary_1 | Value1_1 | Value1_2 | Value1_3 | Value2_1 | Value2_2 | Value2_3 |Value3_1 | Value3_2 | Value3_3 |...
| Itinerary_1 | Value1_1 | Value1_2 | Value1_3 | Value2_1 | Value2_2 | Value2_3 |Value3_1 | Value3_2 | Value3_3 |...
但是示例中的列数会变得难以管理。我希望有多行示例(但在Multiple Multi-Line Examples in SpecFlow Feature File 中有不同的原因)。
我看到的选项是将所有 ExpectedResults 存储在嵌入式 xml 或 json 资源文件中,并且具有非常小的 SpecFlow 功能,例如
Scenario Outline: generate and send confirmation email with correct email address for flight section
Given I have stored embedded resource '<EmbeddedItinerary>'
When Generate confirmation email
Then sections should be as specified in '<ExpectedResultsFile>'
Examples:
| EmbeddedItinerary | ExpectedResultsFile
| Itinerary_1 | ExpectedResults1 |
| Itinerary_2 | ExpectedResults2 |
...
这是个好主意吗?
谁能提出更好的方法(更多的 SpecFlow 风格)?
我担心的是,将预期数据移动到单独的文件会失去可见性,这是 SpecFlow 功能的优势之一。
更新:在写这个问题时,我发现了商业产品(每位用户 255 澳元)Specflow+Excel http://www.specflow.org/plus/excel/getting-started/,这可能满足我维护许多列的要求。
它是成熟/可靠的产品吗?我应该使用它而不是自己解析专有格式的预期结果文件吗?
【问题讨论】:
标签: functional-testing specflow regression-testing