自动测试用户的年龄每年都会失败

时间:2010-07-14 12:15:31

标签: ruby-on-rails ruby unit-testing cucumber

我想使用黄瓜测试我的Rails应用程序的用户的年龄。功能定义看起来有点像。

Scenario: Successful calculation of age
  Given I set my date of birth to "1987-07-15"
  Then my age should be "22"

以上功能定义每年都会失败,因为用户年龄每年会增加一个。

一种解决方案可能是将出生日期动态设置为22.years.ago。但我不知道如何在Gherkin(黄瓜特征定义语言)中这样做。

对此有何看法?

2 个答案:

答案 0 :(得分:4)

我会添加另一个类似于此

的给定条件
Scenario: Successful calculation of age
  Given I set my date of birth to "1987-07-15" And the Date is "15/07/2010"
  Then my age should be "22"

答案 1 :(得分:2)

你可以写

Scenario: Successful calculation of age
Given I set my date of birth to "22" years ago
Then my age should be "22"

根据前22个来自行进行日期转换(例如,将测试方法的Fixnum参数替换为日期)。但说实话,我可能会选择Iain的方法。