2

我正在为Cinch(IRC 机器人)编写一个插件,并尝试为它编写一些 RSpec 测试。

但是,我正在尝试掌握 RSpec,并模拟此插件的外部依赖项。我现在想测试两个不同的东西——它向人们问好,它跟踪它向谁问好。

所以我有一个方法,say_hello,它需要一个Cinch::Message. 模拟这个特定类的最简单方法是什么?我习惯了 Mockito 和 Java,所以我习惯于模拟一个特定的类。

我怎样才能模拟Cinch::Message?在我的第一个测试中,我想断言该reply方法是对该消息调用的。在下一个中,我只希望它像会一样响应Cinch::Message,因为我只关心类的跟踪,而不是与消息的交互。

我刚刚开始使用 RSpec,所以也许我错过了一些基本的东西。我应该使用模拟吗?存根?

谢谢!

4

1 回答 1

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
于 2012-07-29T18:02:48.407 回答