模拟接收块作为参数的方法

raf*_*lss 6 ruby testing mocking mocha.js

我有一个或多或少像这样的场景

class A
  def initialize(&block)
    b = B.new(&block)
  end
end
Run Code Online (Sandbox Code Playgroud)

我是单元测试A类,我想知道B#new是否正在接收传递给A#new的块.我使用Mocha作为模拟框架.

可能吗?

Bry*_*Ash 1

我想你想要:

l = lambda {}
B.expects(:new).with(l)
A.new(&l)
Run Code Online (Sandbox Code Playgroud)

我知道这适用于 RSpec,如果 Mocha 不能处理我会感到惊讶