Дразнить действие с метаклассом в Grails - PullRequest
0 голосов
/ 25 июля 2011

Я пытаюсь смоделировать действие обзор контроллера, но он не работает.

Я пробовал вот это:

MyController.metaClass.overview = { ->
        println "MOCKED OVERVIEW"
        render(view:"overview", model)
    }

MyController.metaClass.demand.overview = { ->
        println "MOCKED OVERVIEW"
        render(view:"overview", model)
    }

MyController.metaClass.static.overview = { ->
        println "MOCKED OVERVIEW"
        render(view:"overview", model)
    }

Всеэто не сработало.

Но я использовал .metaClass для насмешки над некоторыми службами, и это сработало.

Почему с этим действием не работает?

Печать printlnникогда не показывается.

1 Ответ

1 голос
/ 26 июля 2011

Действие должно быть там во время начальной загрузки Grails - для генерации URL и всех бинов Spring. Вы не можете переопределить это (это так просто) после инициализации приложения.

В любом случае, вам не нужно - действия должны быть простыми. Любая тестируемая логика должна быть тестируемой сама по себе.

...