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,但如果另一個寶石可以在這里提供幫助,我也愿意接受。
uj5u.com熱心網友回復:
只需在實體而不是類上存根方法:
RSpec.describe "Foo" do
it "mocks foo" do
foo = Foo.new
allow(foo).to receive(:foo).and_return("bar")
expect(foo.foobar).to eq("barbar")
end
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/436761.html
