我正在尝试使用Minitest为课程设置单元测试。在此类中,某些方法调用其他方法。
这是我正在尝试做的非常简化的概念。
require 'minitest/autorun'
class Book
def caller
self.called
end
def called
nil
end
end
class BookTest < Minitest::Test
def test_checkCaller
fake = Minitest::Mock.new
fake.expect(:caller, nil)
fake.caller
assert(fake.verify,msg=nil)
end
end
此返回:
Run options: --seed 24362
# Running:
.
Finished in 0.002716s, 368.1771 runs/s, 368.1771 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
我什至不确定这是否在做我想要的。我要确认的是called
正在调用caller
。
[后来我也想测试一下,当我向caller
发送特定消息时,called
将运行某个代码,例如将该消息添加到队列中。
[[在任何人将其标记为重复之前,请确保假定的帖子实际上与我所要求的相同,并且最好对我的问题有一个合理的答案。我看过多个类似的帖子,每个帖子都略有不同。]
谢谢!
我喜欢使用名为spy
的宝石。这样,您基本上可以在方法上spy并查看它是否被调用。 https://github.com/ryanong/spy