当我使用';短链&x27;创业板市场';rspec模拟';
我正在用RSpec和RSpec mock对某个对象进行模拟。 我想说的是下面的内容 在等级库文件中当我使用';短链&x27;创业板市场';rspec模拟';,rspec,ruby-on-rails-5,rspec-mocks,Rspec,Ruby On Rails 5,Rspec Mocks,我正在用RSpec和RSpec mock对某个对象进行模拟。 我想说的是下面的内容 在等级库文件中 describe 'foo' do before do Mock.start end end 在模拟文件中 module Mock def self.start SomeClass.stub_chain(:foo).and_return(Mock.mock_create) end def self.mock_create return json
describe 'foo' do
before do
Mock.start
end
end
在模拟文件中
module Mock
def self.start
SomeClass.stub_chain(:foo).and_return(Mock.mock_create)
end
def self.mock_create
return json
end
end
但如果我使用存根链
,则会出现以下弃用警告
Using `stub_chain` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead.
你有什么办法解决这个警告吗?
allow
方法看起来没用,因为我想要像Object.something\u而不是\u stub\u chain(:create)。和\u return(Mock.Mock\u create)
这样做的新方法是
expect(SomeClass).to receive_message_chain(:foo, :bar, :baz).and_return(something_here)
# or if not a chain
expect(SomeClass).to receive(:foo).and_return(something_here)
您可以使用allow
,而不是expect
。如果根本不调用该方法,则这些操作不会失败,但在调用时将返回指定的值