2017-04-24 163 views
1

我创建了一个以下rspec mock,它运行良好,但我执行它时得到了警告。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. called from /file/path.rb:26:in `block (3 levels) in <top (required)>'. 

这是我的单元测试。在我的单元测试中,第26行是user_health_condition.stub(:user_condition_flag) do |user_id|。每个警告我使用期望,为什么我得到这个警告?

describe '.user_condition_flag' do 
    let(:expected_result_with_diabetes) { 'Y' } 
    let(:expected_result_without_diabetes) { 'N' } 
    let(:user_id_1) { 38 } 
    let(:user_id_2) { 39 } 

    context 'with entries in table' do 
    it 'returns expected results' do 
     user_health_condition = double(user_health_condition) 
     allow(user_health_condition).to receive(:user_condition_flag).and_return(expected_result_with_diabetes) 
     user_health_condition.stub(:user_condition_flag) do |user_id| 
     if user_id == :user_id_1 
      'Y' 
     elsif user_id == :user_id_2 
      'N' 
     end 
     end 

     expect(user_health_condition.user_condition_flag(:user_id_1)).to eq(expected_result_with_diabetes) 
     expect(user_health_condition.user_condition_flag(:user_id_2)).to eq(expected_result_without_diabetes) 
    end 
    end 
end 

回答