尝试存根子方法时出现以下错误:
未定义的方法`sub'代表nil:NilClass
为什么这不起作用?
allow(String).to receive(:sub).with('xxyy').and_return('yy')
感谢。
答案 0 :(得分:1)
allow(String).to receive(:sub).with('xxyy').and_return('yy')
意味着有一个类方法String.sub
只接受一个字符串作为参数:
describe "String.sub stub" do
it "returns yy" do
allow(String).to receive(:sub).with('xxyy').and_return('yy')
expect(String.sub('xxyy')).to eq('yy')
end
end
您确定您想要存根的方法具有以下语法:
String.sub('xxyy') # => 'yy'
这应该更接近你想要达到的目标:
describe "'xxyy'.sub stub" do
it "returns yy" do
string = 'xxyy'
allow(string).to receive(:sub).and_return('yy')
expect(string.sub).to eq('yy')
end
end