我创建了一个跟随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
在link一度死亡的情况下,详细阐述@ Brad的具体细节答案
allow(User).to receive(:find_by).and_return(user)
而不是这个:
User.stub(:find_by).and_return(user)
更换
user_health_condition.stub(:user_condition_flag) do
同
allow(user_health_condition).to receive(:user_condition_flag) do