RSpec 文档展示了如何模拟类方法。我该如何替换实例方法。这是一个代码示例,rspec-mocks
用于使其更具体:
require 'rspec'
class Foo
def foo
"foo"
end
def foobar
foo + "bar"
end
end
RSpec.describe "Foo" do
it "mocks foo" do
allow(Foo).to receive(:foo).and_return("bar")
foo = Foo.new
expect(foo.foobar).to eq("barbar")
end
end
这给出了“Foo 没有实现:foo”。当然,这是为了简化而设计的。在我正在测试的实际类中,foo
发出一个 HTTP 请求,所以我想在为foobar
. 我想用 来做这件事rspec-mocks
,但如果另一个宝石可以在这里提供帮助,我也愿意接受。