相关疑难解决方法(0)

如何在RSpec中说"any_instance""should_receive"任意次

我在rails中有一个导入控制器,它将多个带有多条记录的csv文件导入到我的数据库中.我想在RSpec中测试是否使用RSpec实际保存了记录:

<Model>.any_instance.should_receive(:save).at_least(:once)
Run Code Online (Sandbox Code Playgroud)

但是我得到错误说:

The message 'save' was received by <model instance> but has already been received by <another model instance>
Run Code Online (Sandbox Code Playgroud)

一个人为的控制器示例:

rows = CSV.parse(uploaded_file.tempfile, col_sep: "|")

  ActiveRecord::Base.transaction do
    rows.each do |row| 
    mutation = Mutation.new
    row.each_with_index do |value, index| 
      Mutation.send("#{attribute_order[index]}=", value)
    end
  mutation.save          
end
Run Code Online (Sandbox Code Playgroud)

是否可以使用RSpec进行测试或是否有解决方法?

testing rspec ruby-on-rails mocking mocha.js

68
推荐指数
6
解决办法
3万
查看次数

标签 统计

mocha.js ×1

mocking ×1

rspec ×1

ruby-on-rails ×1

testing ×1