0

在此示例中,我使用rr gem,并在此处存根对象方法 obj.project ,并在从任何其他方法或类调用该方法时将返回值分配给任何变量(在本例中为 project_data )。

  obj = Object.new
  project_data = nil

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

当我调用任何使用 obj 调用 project 方法的方法时,project_data将由 obj.project 方法的返回值分配。有没有办法用mocha gem 来实现这种技术?我用谷歌搜索了可能的解决方案,但我找不到任何解决方案

4

1 回答 1

0

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

该块应返回真或假,具体取决于参数是否是可接受的值。在这个例子中,我总是返回true,因为你没有指定什么是有效参数有任何限制。

然而重要的一点是,因为每当调用存根时都会执行该块,所以您可以在project_data那里进行分配。像这样:

obj = Object.new
project_data = nil
obj.stubs(:project).with { |x| project_data = x; true }
于 2015-06-27T04:55:37.893 回答