我是黄瓜的新手。我有以下场景,我想用黄瓜编码:
Feature: Withdraw Fixed Amount
The "Withdraw Cash" menu contains several fixed amounts to
speed up transactions for users.
Scenario Outline: Withdraw fixed amount
Given I have <Balance> in my account
When I choose to withdraw the fixed amount of <Withdrawal>
Then I should receive <Received> cash
And the balance of my account should be <Remaining>
Examples:
| Balance | Withdrawal | Received | Remaining |
| $500 | $50 | $50 | $450 |
| $500 | $100 | $100 | $400 |
我想从这样的文件中读取数据(例子:): $ 500; $ 50 ;; $ 50; $ 450 $ 500; $ 100; $ 100; $ 400
我不确定我是否可以从黄瓜的功能文件或步骤定义中读取数据。请问有人可以对此有所了解吗?非常感谢!
答案 0 :(得分:1)
否在Cucumber中无法“生成”方案。示例表中的每一行都作为单独的场景运行,而Cucumber必须事先知道要运行哪些场景。
那说,有两种可能性,我认为两者都没有吸引力:
在一个步骤中将整个场景写入代码中,例如:
Scenario: Withdraw fixed amount
Given withdrawing should work correctly
#steps.rb
Given /^withdrawing should work correctly$/ do
# Read values from file
# For each row in the file, do everything the scenario would do
end
这样做有效,但是通过Gherkin功能显示关于系统行为的 nothing 的严重缺点。
在这两种情况下,您都要删除要素文件中的数字,这会立即否定其作为文档中心来源的功能,读者必须返回“数字”文件才能找出实际行为。系统。
答案 1 :(得分:0)
你要求的是矫枉过正。这里的示例可以帮助您以清晰的格式识别可能的情况,但不能用于海量数据处理。
示例中的每一行都应该有意义,否则就是在浪费资源。
例如。 100美元的余额,20美元的退款应该留下80美元。但20美元可能是一个硬编码的数字,所以你还需要一个案例来核实,比如说要退出30美元。
ATM系统的每日取款限额为1000美元。所以,如果你要1200美元,系统应该只给你1000美元。你需要另一行来测试它。
上述每个案例都很有意义。而且我认为你需要一个CSV文件才能处理它。手动打字就足够了。