Модульный тест 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
 */
Другие вопросы по тегам