Модульный тест Grails 2.0 с использованием @TestFor и @Mixin - PullRequest
2 голосов
/ 31 января 2012

Я обычно использую 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 Ответ

4 голосов
/ 02 февраля 2012

Предполагая, что вы используете 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
 */
...