我有一个带有产品详细信息页面的应用程序。在该页面上,用户可以看到价格,描述,规格,所有非常标准的东西。但我想在Cucumber中测试这个视图。
现在我使用工厂生成产品标识符,并将其他所有内容留空。如果我向工厂添加默认值,那么检查功能中的相同默认值,然后我将这两个组件紧密耦合(坏)。
唯一可行的方法是在功能文件本身中提供我正在测试的所有值吗?
答案 0 :(得分:0)
黄瓜表是处理这个问题的好方法,将它们绑定到工厂很简单。我假设你正在使用FactoryGirl
,但这很重要。
Scenario: I want to see some product details
Given the following product data
| name | price | description |
| Foo | 1.99 | Yay, it's foo |
| Bar | 4.99 | Yay, it's bar |
然后在步骤定义中的某个地方,您需要将其与您的工厂联系起来。
Given /^the following product data$/ do |table|
table.hashes.each do |hash|
Factory.create(:product, hash)
end
end
请注意,此处的“魔术”来自于命名功能中的表列与数据库列相同,后者将成为hash
中的键。