Модульный тест Grails 2.0 с использованием @TestFor и @Mixin
Я обычно использую Mixins в тестовом коде, чтобы делиться служебными методами между тестами. У меня есть тест, который я написал, который имеет @TestFor
а также @Mixin
, Поведение, которое я вижу, заключается в том, что, когда у меня есть @TestFor
аннотация тест не видит мой @Mixin
код и дает мне MissingMethodException при выполнении. Когда я удаляю @TestFor
это работает отлично. Ниже приведен упрощенный пример того, что я пытаюсь сделать.
@Mixin(TagLibTestUtils)
@TestFor(ErrorMessageTagLib)
class ErrorMessageTagLibTests {
@Test
void stuff() {
something()
}
}
class TagLibTestUtils {
def something() {
println ">>> HERE"
}
}
Так что мой вопрос - сделать @Mixin
а также @TestFor
аннотации не работают вместе? Или я что-то здесь не так делаю?
1 ответ
Решение
Предполагая, что вы используете Grails 2.0, вы должны @TestMixin
вместо @Mixin
,
Если вы посмотрите на источник дляTestFor
, вы увидите этот комментарий:
/**
* Used to indicate the class under test. Triggers the @TestMixin AST transform for the given artefact type.
*
* @author Graeme Rocher
* @since 2.0
*/