gpt4 book ai didi

ruby - RSpec:模拟、 stub 和验证

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:31 25 4
gpt4 key购买 nike

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

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

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

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

我才刚刚开始使用 RSpec,所以我可能遗漏了一些基本知识。我应该使用模拟吗? stub ?

谢谢!

最佳答案

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

关于ruby - RSpec:模拟、 stub 和验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11711048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com