ruby-on-rails - 如何在 Rspec 中测试一个简单的块参数?
问题描述
我正在尝试为这段代码写一个期望:
Sidekiq::Queue.all.each(&:clear)
我知道速记会生成一个块,到目前为止我已经尝试过满足匹配器,这是我正在使用的当前版本。我知道这种语法不正确,我会不断更新我尝试的内容:
expect(Sidekiq::Queue).to receive_message_chain(:all, :each) { &:clear }.and_return(true)
解决方案
这是我用来解决这个问题的方法,但我对其他想法持开放态度,HOW
因为WHY
测试块可能很困难,我认为这将是一个很好的例子。
expect(Sidekiq::Queue).to receive_message_chain(:all, :each) do |&block|
expect(block).to be(Proc.new(&:clear))
end
推荐阅读
- javascript - 在没有“未定义”的情况下正确获取和显示 JSON 数据
- rust - 如何通过 JNI 从 Rust 调用 Java 方法?
- machine-learning - PyTorch - BCELoss:ValueError:目标和输入必须具有相同数量的元素
- azure - 可以通过基于 Ipsec POlicy 的网关强制将流量从 vnet 路由到本地网络
- view - 将变量传递给另一个视图的 SwiftUI 问题
- php - 如何停止在 PHP 后台运行的控制器操作?
- terminal - 在终端中安装 gulp 时如何解决错误“ERR!错误:EACCES:权限被拒绝,符号链接...”?
- java - 如何在 AndroidStudio 上的 OpenGL ES 2.0 中共享纹理
- python - 如何在for循环中分离偶数和奇数位置?
- php - 激活 PHP-FPM 时,每个域推荐的 30MB RAM 是否适用于每个域的每个工作人员?