【问题标题】:RSpec: Mocks, Stubs and VerificationRSpec:模拟、存根和验证
【发布时间】:2012-07-27 12:05:53
【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: ruby testing rspec tdd rspec-mocks


    【解决方案1】:

    首先,文档将是一个不错的起点,请参阅: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 2014-09-11
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多