У меня есть следующий Groovy классаКак написать тест spock для проверки взаимодействия между тестируемым классом и внешним классом?
import Utils
class HelpController {
def search = {
Utils.someFunction()
}
}
Вот мой Спок заводная спецификация:
import Utils
import grails.test.mixin.*
import HelpController
@TestMixin(GrailsUnitTestMixin)
@TestFor(HelpController)
class HelpControllerSpec extends Specification {
void "should call someFunction method in Utils class"() {
when:
helpController.search()
then:
1 * Utils.someFunction()
}
}
Запуск результатов тестирования ошибки:
too few invocations for Utils.someFunction() (0 invocations)
Utils является классом Java. Когда я перехожу к тесту с помощью spock unit, кажется, что Utils.someFunction() вызывается так, что я немного смущен относительно того, что может происходить. Может ли кто-нибудь посоветовать? Заранее спасибо!
Хороший, но не переделка Utils.metaClass идти внутри рамки, охваченной @ConfineMetaClassChanges? – railsdog
Вы правы! спасибо – quindimildev
Спасибо за предложение! Тем не менее, я вижу ошибку «Нет такого свойства: метакласс для Utils». Я попытался расширить Expando в Utils, но все равно получаю ту же ошибку ... заметьте, что Utils - это POJO –