在一个 Rspec 测试(工作正常)上,我有一个弃用警告
不推荐使用 rspec-mocks 旧
:should
语法中的stub
而不显式启用语法。改用新的:expect
语法或显式启用:should
。
我应该如何更改此测试以符合 Rspec 3?
我正在测试字段公司名称是否存在/不为空,然后我必须验证公司电话号码字段是否存在。我曾经使用"存根",但它无法正常工作,我想转向新的 Rspec 3 方式。
/spec/models/company_spec.rb
describe "test on company name" do
context "test" do
before { subject.stub(:company_name?) { true } }
it { is_expected.to validate_presence_of(:company_phone_number) }
end
end
要在 RSpec 3 下存根方法,请使用 allow/receive
:
allow(subject).to receive(:company_name?).and_return(true)
如果要设置一个在从不调用 company_name?
时将失败的期望:
expect(subject).to receive(:company_name?).and_return(true)
可能是这样的:
describe "test on company name" do
context "test" do
before { allow(subject).to receive(:company_name?).and_return(true) }
...
end
end