ruby – 如何使用MiniTest :: Mock测试方法是否被调用
发布时间:2020-12-17 02:18:41 所属栏目:百科 来源:网络整理
导读:我想测试一个方法,在这种情况下’puts’,当我将Foo模块包含到类中并调用’bar’时,是否会调用它. require 'minitest/autorun'module Foo def bar puts 'bar' endendclass FooTest MiniTest::Unit::TestCase def setup @class = Class.new do extend Foo end
我想测试一个方法,在这种情况下’puts’,当我将Foo模块包含到类中并调用’bar’时,是否会调用它.
require 'minitest/autorun' module Foo def bar puts 'bar' end end class FooTest < MiniTest::Unit::TestCase def setup @class = Class.new do extend Foo end end def test_if_bar_method_calls_puts mock = MiniTest::Mock.new mock.expect(:puts,nil,['bar']) @class.bar assert mock.verify end end 解决方法
你可以这样做:
def test_if_bar_method_calls_puts mock = MiniTest::Mock.new mock.expect(:puts,['bar']) @class.stub :puts,-> (arg) { mock.puts arg } do @class.bar end assert mock.verify end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |