新的 Rspec 3 种方法存根模型 (Rails 4.2/Rspec 3.1)
New Rspec 3 way to stub model (Rails 4.2/Rspec 3.1)
在一项 Rspec 测试中(工作正常),我收到弃用警告
Using stub
from rspec-mocks' old :should
syntax without explicitly enabling the syntax is deprecated. Use the new :expect
syntax or explicitly enable :should
instead.
我应该如何更改此测试以符合 Rspec 3?
我正在测试字段公司名称 exists/is 不为空,然后我必须验证公司 phone 号码字段是否存在。我曾经使用 'stub' 但它不能正常工作,我想移动到新的 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
在一项 Rspec 测试中(工作正常),我收到弃用警告
Using
stub
from rspec-mocks' old:should
syntax without explicitly enabling the syntax is deprecated. Use the new:expect
syntax or explicitly enable:should
instead.
我应该如何更改此测试以符合 Rspec 3?
我正在测试字段公司名称 exists/is 不为空,然后我必须验证公司 phone 号码字段是否存在。我曾经使用 'stub' 但它不能正常工作,我想移动到新的 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