Я обычно использую Mixins в тестовом коде для совместного использования методов утилиты в тестах. У меня есть тест, который я написал, который имеет @TestFor
и @Mixin
. Поведение, которое я вижу, это то, что когда у меня есть аннотация @TestFor
, тест не видит мой код @Mixin
и дает мне MissingMethodException при его исполнении. Когда я удаляю @TestFor
, он отлично работает. Ниже приведен упрощенный пример того, что я пытаюсь сделать.Тест модулей Grails 2.0 с использованием @TestFor и @Mixin
@Mixin(TagLibTestUtils)
@TestFor(ErrorMessageTagLib)
class ErrorMessageTagLibTests {
@Test
void stuff() {
something()
}
}
class TagLibTestUtils {
def something() {
println ">>> HERE"
}
}
Так что мой вопрос, это сделать @Mixin
и @TestFor
аннотаций не работают вместе? Или я делаю что-то не так?
Это работает, спасибо! Любое понимание того, почему было сделано изменение для использования TestMixin? –
Боюсь, я не знаю. Возможно, им понадобилось другое [RetentionPolicy] (http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/RetentionPolicy.html), чем то, что установлено для @Mixin. Возможно, они просто хотели, чтобы это было частью пакета grails.test, а не 'groovy.lang' –
Прохладный, спасибо. Я буду награждать вас завтрашней раздачей, как только это позволит мне это сделать :) –