Я пытаюсь провести модульное тестирование части кода, написанного на Ruby, которая вызывает File.open
. Чтобы высмеять его, я обезьянничал File.open
следующим образом:
class File
def self.open(name, &block)
if name.include?("retval")
return "0\n"
else
return "1\n"
end
end
end
Проблема в том, что я использую rcov для запуска всего этого, поскольку он использует File.open для записи информации о покрытии кода, он получает обезьянничающую версию вместо настоящей. Как я могу отменить monkeypatch этого метода, чтобы вернуть его к исходному методу? Я пробовал возиться с alias
, но пока безрезультатно.