gpt4 book ai didi

ruby - 如何在 Ruby 中使用 RSpec 模拟 Pusher?

转载 作者:数据小太阳 更新时间:2023-10-29 07:40:45 24 4
gpt4 key购买 nike

目前正在使用 Pusher 和 RSpec。

Pusher.should_receive( :trigger ).with( 'message', { :data => '12345' })

这会起作用,除了调用是 Pusher[ 'channel-id' ].trigger...

如何用 RSpec 模拟这个?

最佳答案

[] 是一个函数名,所以它可以被 stub 。在 Pusher 源代码中,您会看到:def_delegators :default_client, :webhook, :channel, :[] 所以所有这些方法都被转发到 default_client。所以这实际上是一个方法链。

我会做你想做的事。

 mock_client = mock('client')
Pusher.stub(:[]).with('channel-id').and_return(mock_client)
mock_client.should_receive( :trigger ).with( 'message', { :data => '12345' })

我现在手边没有 rspec,但看不出它为什么不起作用。

关于ruby - 如何在 Ruby 中使用 RSpec 模拟 Pusher?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16115536/

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