Вы можете метаклассировать метод, чтобы он возвращал все, что вы хотите.
@Test
void pluginCode() {
def myService = new MyService()
def wasCalled = false
myService.metaClass.sendJMSMessage = {String message ->
//I like to have an assert in here to test what's being passed in so I can ensure wiring is correct
wasCalled = true
null //this is what the method will now return
}
def results = myService.myServiceMethodThatCallsPlugin()
assert wasCalled
}
Мне нравится иметь флаг wasCalled
, когда я возвращаю null
из метода metaClassed, потому что мне не особенно нравится утверждать, что ответ null
, потому что он не гарантирует, что вы правильно подключен. Если вы возвращаете что-то уникальное, вы можете обойтись без флага wasCalled
.
В приведенном выше примере я использовал параметр 1 String, но вы можете metaClass
вывести любой номер / тип параметров, чтобы соответствовать тому, что на самом деле происходит.