我正在尝试为这段代码编写期望:
Sidekiq::Queue.all.each(&:clear)
我知道简写会生成一个 block ,到目前为止我已经尝试过满足匹配器,这是我正在使用的当前版本。我知道这种语法不正确,我会不断更新我尝试的内容:
expect(Sidekiq::Queue).to receive_message_chain(:all, :each) { &:clear }.and_return(true)
最佳答案
这是我用来解决这个问题的方法,但我对 HOW
而不是 WHY
的其他想法持开放态度,因为测试 block 可能很困难,我认为这将是一个很好的例子。
expect(Sidekiq::Queue).to receive_message_chain(:all, :each) do |&block|
expect(block).to be(Proc.new(&:clear))
end
关于ruby-on-rails - 如何在 Rspec 中测试一个简单的 block 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61482371/