Cucumber场景大纲和数据表-未找到Capybara元素
我如何编写一个场景大纲来测试基于一个变量的计算,该变量输出10个不同的变量 我尝试了各种选项,并出现了各种错误,包括:Cucumber场景大纲和数据表-未找到Capybara元素,cucumber,capybara,scenarios,Cucumber,Capybara,Scenarios,我如何编写一个场景大纲来测试基于一个变量的计算,该变量输出10个不同的变量 我尝试了各种选项,并出现了各种错误,包括: Unable to find option "<frequency>" (Capybara::ElementNotFound) 下面的代码给出了Capybara::ElementNotFound错误 Scenario Outline: When I select "<frequency>" frequency And I press re
Unable to find option "<frequency>" (Capybara::ElementNotFound)
下面的代码给出了Capybara::ElementNotFound错误
Scenario Outline:
When I select "<frequency>" frequency
And I press recalculate
Then I should see total amount and percentages recalculated by <frequency> frequency on the results page
Examples:
| frequency |
| weekly |
| daily |
Examples:
| tax | sub-total | total |
| 38.25 | 114.74 | 191.24 |
| 3.19 | 9.56 | 15.94 |
场景大纲:
当我选择“”频率时
然后我按重新计算
然后我会在结果页面上看到按频率重新计算的总金额和百分比
示例:
|频率|
|周报|
|每日|
示例:
|税金|小计|总计|
| 38.25 | 114.74 | 191.24 |
| 3.19 | 9.56 | 15.94 |
步骤定义
When(/^I select "([^"]*)" frequency$/) do |frequency|
select "<frequency>", from: "frequency"
end
Then(/^I should see total amount and percentages recalculated by <frequency> frequency on the results page$/) do |table|
expect(results_page).to have_content("<tax>")
expect(results_page).to have_content("<sub_total>")
expect(results_page).to have_content("<total>")
end
当(/^I选择“([^”]*)”频率$/)do |频率|
从“频率”中选择“”
结束
然后(/^我应该在结果页面$/)上看到按频率重新计算的总金额和百分比do |表|
期望(结果页面)。有内容(“”)
期望(结果页面)。有内容(“”)
期望(结果页面)。有内容(“”)
结束
表单标记
<form action="change_result_frequency" method="post">
<label for="frequency">Frequency</label>
<select name="frequency" id="frequency">
<option value="yearly">yearly</option>
<option value="monthly">monthly</option>
<option selected="selected" value="weekly">weekly</option>
<option value="daily">daily</option>
</select>
<input type="submit" name="commit" value="Recalculate">
</form>
频率
每年的
月刊
每周的
每日的
我不熟悉cucumber和capybara,因此我不确定如何使用数据表编写场景大纲。我做错了什么?你做错的是试图在功能中编写有关计算工作的细节。相反,你应该尝试使用功能来解释你在做什么(这与频率有关,但除此之外我不知道)。当你采用这种方法时,你不会因为一些原因而费心在场景中指定实际结果
鉴于
当我改变频率时
然后我会看到一组新的结果
第二部分不应该通过在Cucumber中编写场景来测试。相反,您应该为进行频率计算的东西编写单元测试。编写单元测试允许您
- 编写更快的测试
- 编写更多测试,以便处理边缘情况
- 用编程语言编写测试,以便轻松生成和使用任何类型的值
祝您好运:)您应该只有一个示例表和您的场景大纲,您需要访问大纲中步骤中的“变量”。因此,类似以下内容(步骤定义相应更新)
场景大纲:
当我选择“”频率时
然后我按重新计算
然后我会看到,并在结果页面上重新计算
示例:
|频率|税|小计|总计|
|每周| 38.25 | 114.74 | 191.24|
|每日| 3.19 | 9.56 | 15.94|
<form action="change_result_frequency" method="post">
<label for="frequency">Frequency</label>
<select name="frequency" id="frequency">
<option value="yearly">yearly</option>
<option value="monthly">monthly</option>
<option selected="selected" value="weekly">weekly</option>
<option value="daily">daily</option>
</select>
<input type="submit" name="commit" value="Recalculate">
</form>
Scenario Outline:
When I select "<frequency>" frequency
And I press recalculate
Then I should see <tax>, <sub-total>, and <total> recalculated on the results page
Examples:
| frequency | tax | sub-total | total |
| weekly | 38.25 | 114.74 | 191.24 |
| daily | 3.19 | 9.56 | 15.94 |