Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我使用';短链&x27;创业板市场';rspec模拟';_Rspec_Ruby On Rails 5_Rspec Mocks - Fatal编程技术网

当我使用';短链&x27;创业板市场';rspec模拟';

当我使用';短链&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

我正在用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
  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
。如果根本不调用该方法,则这些操作不会失败,但在调用时将返回指定的值