如何使用Minitest存根设置方法?

时间:2016-10-08 12:20:33

标签: ruby-on-rails

如何在stub中使用setup方法? 我只找到stub这样的块:

class FooTest < ActiveSupport::TestCase
  test 'for_something' do
    Foo.stub :some_method, 3 do
      #assert_equal
    end
  end  
end

但是我想为所有测试存根。我该如何存根?

2 个答案:

答案 0 :(得分:2)

您可以通过覆盖测试用例中的#run方法来实现这一目标:

class FooTest < ActiveSupport::TestCase
  def run
    Foo.stub :some_method, 3 do
      super
    end
  end

  test 'for_something' do
    #assert_equal
  end  
end

这是引入需要在每个测试用例“周围”执行的代码的常用方法。

答案 1 :(得分:1)

我认为这已在此处回答 - https://stackoverflow.com/a/39081919/3102718

使用gem mocha,您可以在设置或测试中存根方法,例如:

require 'active_support'
require 'minitest/autorun'
require 'mocha/mini_test'

module Foo
end

class FooTest < ActiveSupport::TestCase
  setup do
    Foo.stubs(:some_method).returns(300)
  end

  test 'for_something' do
    assert Foo.some_method == 300
  end
end
相关问题