我正在为Cinch(IRC机器人)编写一个插件,并试图为它编写一些RSpec测试。
然而,我正试图掌握RSpec,并嘲笑这个插件的外部依赖。我现在想要测试两种不同的东西 - 它向人们问好,并且它跟踪了你的问候。
所以我有一个方法say_hello
,它需要Cinch::Message
。模拟这个特定类的最简单方法是什么?我已经习惯了Mockito和Java,所以我习惯于模拟一个特定的类。
如何模仿Cinch::Message
?在我的第一次测试中,我想断言在该消息上调用reply
方法。在下一篇文章中,我只是希望它像Cinch::Message
那样回复,因为我只关心类的跟踪,而不是与消息的交互。
我刚刚开始使用RSpec,所以也许我错过了一些基本的东西。我应该使用模拟吗?存根?
谢谢!
答案 0 :(得分:3)
首先,文档将是一个不错的起点,请参阅:https://www.relishapp.com/rspec/rspec-mocks/v/2-11/docs/message-expectations
..这就是你的测试的样子:
it 'should call #reply on the message'
message = double('cinch message')
message.should_receive(:reply)
object_under_test.say_hello(message)
end