ruby on rails-mochagem存根方法和assign响应



在这个例子中,我使用rrgem,并在这里存根一个对象方法obj.project,当从任何其他方法或类调用该方法时,将返回值分配给任何变量(在本例中为project_data)。

  obj = Object.new
  project_data = nil
  stub(obj).project { |*x| project_data = x }

当我调用任何使用obj调用项目方法的方法时,project_data将由obj.project方法的返回值赋值。有什么方法可以用mochagem实现这种技术吗?我在谷歌上搜索了可能的解决方案,但我找不出任何解决方案

在mocha中,with允许您指定参数匹配器。您可以传递一个块来对传递给存根方法的参数进行任意测试。

根据参数是否为可接受值,块应返回true或false。在这个例子中,我总是返回true,因为您并没有指定什么是有效参数有任何限制。

然而,重要的一点是,由于每当调用存根时都会执行块,因此可以在那里执行project_data赋值。像这样:

obj = Object.new
project_data = nil
obj.stubs(:project).with { |x| project_data = x; true }

相关内容

  • 没有找到相关文章

最新更新