Cucumber 测试步骤定义优化与世界对象的使用
1. 账户类的初步实现与重复代码问题
首先,我们有一个简单的账户类实现,代码如下:
class Account
def deposit(amount)
@balance = amount
end
def balance
@balance
end
end
在步骤定义中,我们发现存在重复调用 to_i 方法的问题。为了解决这个问题,我们引入了 Cucumber 的 Transform 方法。
2. 使用 Transform 去除重复代码
Transform 方法可以对捕获的参数进行转换,将特定的字符串转换为更有意义的对象。例如,我们可以将匹配到的数字字符串转换为 Ruby 的整数:
Transform /^\d+$/ do |number|
number.to_i
end
这里使用 ^ 和 $ 来确保只匹配完整的数字字符串。当 Cucumber 匹配步骤定义时,会检查每个参数是否有匹配的 Transform ,如果有则将捕获的字符串传递给 Transform 的代码块,并将结果传递给步骤定义。
使用 Transform </
超级会员免费看
订阅专栏 解锁全文
50

被折叠的 条评论
为什么被折叠?



