У меня есть класс MyClass Java с перегруженного процесса метод:Как издеваются перегруженный метод Java с использованием Спок
class MyClass {
private String process(String requestId, String request) {
// Initial processing, creates processObject from request
// then class actual processing:
String temp = process (processObject);
// do stuff I want to test, generate response
return response;
};
private String process(ProcessClass processObject) {
String result;
// do actual processing of processObject
return result;
}
}
Я хочу проверить метод первого процесса() с помощью Спока. Я пытаюсь использовать Шпион, чтобы высмеять перегруженный процесс (ProcessClass). Вот testProcess.groovy до сих пор:
class TestProcessUsingString extends Specification {
given:
def testInput = "TestInput"
def myObject = Spy(MyClass) {
process(_ as ProcessClass) >> "My result string"
}
when:
def response = myObject.process("TestInput")
// Check response
Этот метод не работает для имитации процесса метода (ProcessClass ...), как я ожидал бы. Я консультировался с http://spockframework.org/spock/docs/1.0/interaction_based_testing.html, но я не могу понять это.
Как я могу издеваться над MyClass.process (ProcessClass), чтобы я мог вернуть поддельный ответ и передать его другой функции процесса?
Почему бы не переместить материал, который вы хотите протестировать, в тестовый метод? –