如何在Minitest的setup方法中使用存根?

5

我如何在setup中使用stub方法? 我只找到了以下形式的带有块的stub

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

但我希望所有测试都能使用这个存根。如何进行存根?

2个回答

7
你可以通过在测试用例中覆盖 #run 方法来实现这一点:
class FooTest < ActiveSupport::TestCase
  def run
    Foo.stub :some_method, 3 do
      super
    end
  end

  test 'for_something' do
    #assert_equal
  end  
end

这是一种常见的方式,用于引入需要在每个测试案例周围执行的代码。


2
我认为这个问题在这里已经得到了回答-https://dev59.com/c5nga4cB1Zd3GeqPcbbo#39081919 使用gem mocha,你可以在setup或测试中存根方法,例如:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接