我正在使用一大堆已有的黄瓜功能,并添加其他测试。对于那些新的测试,我也试图使用变换来简化重复性任务。
如何在不破坏现有测试的情况下添加转换?我已经为捕获组添加了上下文,但由于上下文来自与预先存在的测试相同的业务域,因此很容易最终匹配。
有没有办法只对某些步骤应用转换?
答案 0 :(得分:2)
您可以使用标记和Before过滤器在World中设置实例变量。然后,这可用于您的Transform,以便它可以执行特定于标签的转换。例如,如果您只想在存在@hook标记时转换整数:
Transform /(\d+)/ do |num|
if @hook
num.to_i
else
num
end
end
Before('@hook') do
@hook = true
end
为每个场景创建一个新世界,并调用Before过滤器。因此,@ hook将针对每个场景重置。