【发布时间】:2018-07-01 07:49:15
【问题描述】:
我在Minitest::Mock 中遇到了一些奇怪的行为,无法弄清楚背后的原因。
假设我有一个类 A,它有一个方法 b,它调用方法 c:
class A
def b
c
end
def c
1
end
end
我想模拟 c 方法返回 2 而不是 1:
require 'minitest/autorun'
a = Minitest::Mock.new(A.new)
a.expect(:c, 2)
但由于某种原因b 仍然返回 1:
> a.b
=> 1
显然直接调用c 会起作用:
> a.c
=> 2
> a.c
MockExpectationError: No more expects available for :c: []
为什么在实例中调用 c 时没有调用它的期望?
【问题讨论】:
标签: ruby-on-rails ruby mocking minitest