我在feature/support/ transforms /date_transform.rb中有两个转换
CAPTURE_YEAR = Transform /^(20\d{2})$/ do |year|
year.to_i
end
CAPTURE_QUARTER = Transform /^(first|second|third|fourth)$/ do |quarter|
{first: 1, second: 2, third: 3, fourth: 4}[quarter.to_sym]
end我在features/support/transforms/number_transform.rb中有另一个转换
CAPTURE_NUMBER = Transform /^\d+$/ do |number|
number.to_i
end我意识到年份和数字1几乎相同,但我不想简单地去掉CAPTURE_YEAR变量。我想做的是:
CAPTURE_YEAR = CAPTURE_NUMBER但不幸的是,我正在处理的文件中不存在CAPTURE_NUMBER。你知道如何在cucumber中正确地包含其他转换吗?我应该显式地要求每个转换文件中的文件,对吗?
提前感谢!
发布于 2011-11-10 22:29:07
Cucumber只是加载support目录中的任何文件。它似乎是按字母顺序加载它们的(但我不知道这是一种有记录的/可靠的行为--即我不喜欢仅仅重命名文件来绕过它)。
如果您试图在加载包含CAPTURE_NUMBER的文件之前声明CAPTURE_YEAR,那么它将失败,正如您已经发现的那样。
我认为最好的选择是在尝试使用number_transform文件中声明的常量之前显式地要求该文件。就我个人而言,在一个文件中声明它依赖于哪些文件是没有问题的。
您也可以在env.rb中需要它,因为它在任何其他支持文件之前被解析,如果您的许多其他文件也依赖于它,则可能是一个更好的选择。
https://stackoverflow.com/questions/8055813
复制相似问题