【发布时间】:2021-07-15 22:04:12
【问题描述】:
我对 Ruby 和 RSpec 非常陌生,但在尝试模拟类中的属性链时遇到了麻烦:
client.conversations.configuration.update(sid: user.sid)
我已经像这样嘲笑客户了:
let(:client) { class_double(Service::ClientFactory) }
但是,这是我使用 receive 方法尝试并失败的方法,它不起作用。
allow(client).to receive(conversations.configuration.update).and_return("123123123")
我怎样才能正确地做到这一点? 谢谢!
【问题讨论】:
-
您可以为此使用stub_chain,但最好不要存根...为什么要尝试存根?
-
为什么是一个很好的问题。我假设你已经单独测试了
client.conversations、conversations.configuration和configuration.update(如果你没有测试过)那么真的需要测试吗?
标签: ruby unit-testing rspec