Конфигурация Mocking для модульного тестирования контроллера Grails - PullRequest
2 голосов
/ 15 июля 2011

В Grails 1.3.7 я получаю доступ к некоторым внешним свойствам через ConfigurationHolder в моем контроллере. Поиск в Google предполагает, что я могу использовать следующее при настройке моего модульного теста:

    mockConfig '''
        sys.admin.username = "username"
        sys.admin.password = "password"
    '''

когда мои модульные тесты запускаются ConfigruationHolder.config имеет значение null. Таким образом, поиск в Google побудил меня попробовать это в настройке:

    def mockedConfig = new ConfigObject()
    mockedConfig.sys.admin.username = "username"
    mockedConfig.sys.admin.password = "password"
    ConfigurationHolder.config = mockedConfig

все еще получает нулевой объект конфигурации в модульном тесте. Я также попробовал hiearctical синтаксис для этого первого стиля, и он тоже не работал:

    mockConfig('''
        sys { admin {
            username = 'username'
            password = 'password'
        } }
    ''')

Я новичок в Grails, поэтому я наткнулся на это и хотел бы проверить мой контроллер. Как мне обойти нулевой объект конфигурации?

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Увы, это была временная проблема.Я держал ссылку на владельца конфигурации в своем классе контроллера:

def config = ConfigurationHolder.config

Перемещение этого внутри метода, где это было необходимо, сработало.

0 голосов
/ 15 июля 2011

Вы пробовали это:

import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH

....


def username = CH.config.sys.admin.username
def password = CH.config.sys.admin.password
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...