使用Minitest Mocha时如何为存根指定功能?

时间:2019-05-30 09:56:08

标签: ruby-on-rails ruby-on-rails-5 minitest

在下面的示例中是否可以指定引发哪个find_by!异常(我希望引发第二个异常,而不是第一个):

def self.test
  Instance.stubs(:find_by!).raises(ActiveRecord::RecordNotFound)

  begin
    function_one
  rescue ActiveRecord::RecordNotFound
    puts 'Failure'
  end

  begin
    function_two
  rescue ActiveRecord::RecordNotFound
    puts 'Success'
  end
end

def self.function_one
  Model.find_by!(id: 1)
end

def self.function_two
  Model.find_by!(id: 1)
end

*假设id: 1不存在。像在示例中一样,还假定它们将是静态类函数,但是在添加any_instance不足以用于实例方法的情况下,请提及任何区别。

1 个答案:

答案 0 :(得分:0)

怎么样?

Instance.stubs(:find_by!).returns('result').then.raises(ActiveRecord::RecordNotFound)