2015-01-14 87 views
0

在一個Rspec的測試(其中正常工作),我有一個棄用警告新Rspec的存根模型3路(Rails的4.2/Rspec的3.1)

從RSpec的,嘲笑的老: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 

回答

1

它可能是這樣的:

describe "test on company name" do 

    context "test" do 
    before { allow(subject).to receive(:company_name?).and_return(true) } 

    ... 
    end 
end 
+0

thanks tomas xx – Mathieu

2

存根下的RSpec 3使用allow/receive的方法:

allow(subject).to receive(:company_name?).and_return(true) 

如果你想設置一個期望,會失敗,如果company_name?是永遠稱爲:

expect(subject).to receive(:company_name?).and_return(true)