Chr*_*ugh 2 rspec ruby-on-rails
我正在尝试为这段代码编写一个期望:
Sidekiq::Queue.all.each(&:clear)
我知道速记会生成一个块,到目前为止我已经尝试了满足匹配器,这是我正在使用的当前版本。我知道这个语法不正确,我会不断更新我的尝试:
expect(Sidekiq::Queue).to receive_message_chain(:all, :each) { &:clear }.and_return(true)
Run Code Online (Sandbox Code Playgroud)
这是我用来解决这个办法,但我愿意接受其他的想法上HOW不WHY作为测试块可以是艰难的,我认为这将是一个很好的例子。
expect(Sidekiq::Queue).to receive_message_chain(:all, :each) do |&block|
expect(block).to be(Proc.new(&:clear))
end
Run Code Online (Sandbox Code Playgroud)
信用到期的信用:https : //github.com/rspec/rspec-mocks/issues/1182