【发布时间】:2017-03-01 09:05:45
【问题描述】:
我有一个类定义了一个“验证”方法,不幸的是,它与 MiniTest::Mock 用于验证方法已被调用的名称相同。我遇到了一个严重的问题。
我有如下定义的类。
class Reader
def initialize(verifier)
@verifier = verifier
end
def verify(subject)
@verifier.verify(subject)
end
end
class Verifier
def verify(subject)
subject != nil
end
end
我的测试设置如下。
class TestReader < MiniTest::Test
def test_reader_when_verification_fails
mock_verifier = MiniTest::Mock.new
mock_verifier.expect :verify, false
reader = Reader.new(mock_verifier)
reader.verify(nil)
# The following verify method ends up being the 'verify' defined on
# Verifier, not on MiniTest::Mock. It blows up because Verifier#verify
# expects an argument.
mock_verifier.verify
end
end
我该如何解决这个问题?
【问题讨论】:
标签: ruby unit-testing mocking minitest