如何在minitest中模拟另一个类的实例方法

时间:2013-11-16 11:52:42

标签: ruby unit-testing minitest

我正在使用minitest测试ruby应用程序

我有这样的场景:

class TestExample

   def test_method
      SomeOtherClass.new.print_message "Hello World!!!!!"
   end

end

在这里,我想模仿print_message的{​​{1}}方法,并尝试这样做

SomeOtherClass

它不起作用,它给出了例外: -

MockExpectationError:expect#(“Hello World !!!!!”)=> [],得到[]

感谢任何建议和回答。

1 个答案:

答案 0 :(得分:4)

class TestMocking < MiniTest::Unit::TestCase
  def test_mocking
    some_other_class_mock = MiniTest::Mock.new
    some_other_class_mock.expect :print_message, nil, ["Hello World!!!!!"]

    SomeOtherClass.stub :new, some_other_class_mock do
      test_example = TestExample.new
      test_example.test_method
    end

    some_other_class_mock.verify
  end
end