Я столкнулся с каким-то странным поведением в 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
не вызывается при вызове его из экземпляра?