Ruby测试框架与命令行使用全解析
1. RSpec测试框架的强大功能
RSpec是Ruby中常用的测试框架,其中 allow 和 expect 结构非常强大。可以使用它们对测试替身(test doubles)进行操作,也能对非测试替身对象的特定方法进行存根(stub)。
例如:
obj = double
allow(obj).to receive(:cost).and_return("cheap")
obj.cost
expect(obj).to have_received(:cost)
还可以对现有对象的方法进行存根:
kermit = Muppet.new
allow(kermit).to receive(:greeting).and_return("Hi ho")
不过,测试替身存在一个潜在问题:底层对象的API可能会改变,但使用存根方法的测试仍然能通过。RSpec提供了 instance_double 来解决这个问题:
fake_product = instance_double(Product)
allow(fake_product).to receive(:name).and_return("pretzel")
当使用 instance_do
超级会员免费看
订阅专栏 解锁全文
44

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



