Я хочу выполнить модульное тестирование функции в классе обслуживания.
Класс обслуживания выглядит следующим образом:
class FooService{
Double getFoo(SomeClass class){
Double returningValue = 0.0
String parameter
SomeClass.findAllByCodeLike(parameter).each{
Double amount = someOtherFooServiceMethod(it,it.someClassAttribute?.intValue())
if(amount){
returningValue += amount;
}
}
}
}
Я знаю, как насмехаться над SomeClass.findAllByCodeLike ( параметр) . Я высмеял его с помощью SomeClass.metaClass.stati c .findAllByCodeLike () и присвоил этой функции значение.
Но я не знаю, как насмехаться над .each {} . Есть ли способ сделать это?
К настоящему времени я высмеиваю множество классов домена, чтобы протестировать этот метод, а также сохранить классы домена в базе данных в памяти. Если я найду способ издеваться над SomeClass.findAllByCodeLike (параметр) .each {...} , я могу уменьшить TestClass большим количеством кода.