【发布时间】:2016-08-31 16:50:04
【问题描述】:
我想测试一个类在 RSpec 中接收到一个类方法调用:
describe MyObject do
it "should create a new user" do
expect(User).to receive(:new)
MyObject.new.doit
end
end
class MyObject
def doit
u = User.new
u.save
end
end
问题在于期望不会停止执行。它只是将类方法.doit 存根并继续执行。
期望的效果是保证User.new返回nil。因此,当我们到达下一行 User.save 时,它会失败,因为没有用户对象可以调用 .save。
我希望在满足 RSpec 期望后立即停止执行 - 我该怎么做?
注意
这只是一个说明性示例 - 虽然 expect to change 适用于 User.new,但我需要测试的不是这段实际代码
【问题讨论】:
标签: ruby-on-rails rspec