如何在rspec中测试一个简单的块参数?

问题描述 投票:0回答:1

我想为这段代码写一个期望值。

Sidekiq::Queue.all.each(&:clear)

我知道速记生成一个块,到目前为止,我已经尝试了满足匹配器,这是我正在使用的当前版本。我知道这个语法是不正确的,我会继续更新我的尝试......

expect(Sidekiq::Queue).to receive_message_chain(:all, :each) { &:clear }.and_return(true)
ruby-on-rails rspec
1个回答
2
投票

这是我用来解决这个问题的方法,但我对其他的想法持开放态度 HOWWHY 作为测试块可以是艰难的,我认为这将是一个很好的例子。

expect(Sidekiq::Queue).to receive_message_chain(:all, :each) { |&block| expect(block).to be(Proc.new(&:clear)) }

信誉是应该的。https:/github.comrspecrspec -mocksissues1182。

© www.soinside.com 2019 - 2024. All rights reserved.