Я тестирую классы Java с помощью RSpec и JRuby.
Как я могу остановить вызов super в импортированном классе Java в моем тесте RSpec?
Например:
У меня есть 2 класса Java:
public class A{
public String foo() {
return "bar";
}
}
public class B extends A
public String foo() {
// B code
return super.foo();
}
}
Я просто пытаюсь проверить код в B.foo, а не код в A.foo с помощью JRuby. Как я могу заглушить вызов метода суперкласса в моем тесте RSpec?
Тест rspec:
java_import Java::B
describe B do
it "should not call A.foo" do
# some code to stub out A.foo
b = B.new
b.foo.should_not == "bar"
end
end
Я попытался включить модуль с новым методом foo в класс B, надеясь, что он сначала попадет в метод модуля, но B все еще вызывает метод A. Метод вставки модуля работает в Ruby, но не с JRuby и импортированными классами Java. .
Какие-нибудь другие идеи о том, чтобы заглушить метод суперкласса для прохождения моего теста RSpec?