Grails - сбой сохранения () с MissingMethodExcepition в интеграционном тесте - PullRequest
3 голосов
/ 24 февраля 2011

Я изучаю Groovy / Grails и пишу свой первый интеграционный тест.

В настоящее время происходит сбой:

groovy.lang.MissingMethodException: Нет подпись метода: com.mangofactory.scurry.User.save () является применимо для типов аргументов: () значения: []

Мой тест не делает ничего особенного:

class UserEventControllerTests extends ControllerUnitTestCase {
    protected void setUp() {
        super.setUp()
    }

    protected void tearDown() {
        super.tearDown()
    }

    void testAddingAUser()
    {
        def user = new User(emailAddress: "martypitt@test.com")
        user.save()
    }
}

Сохранение сущности работает нормально, когда я делаю это через страницы в лесах, предоставленные grails.

Что я пропустил?

1 Ответ

3 голосов
/ 24 февраля 2011

Если вы хотите, чтобы это были интеграционные тесты, он не должен расширять один из базовых классов модульного тестирования, поэтому измените его на

class UserEventControllerTests extends GroovyTestCase {
...
}

и убедитесь, что он находится в тесте / интеграции, а не тесте /unit.

Но похоже, что вы хотите протестировать контроллер (он называется UserEventControllerTests), который должен расширяться ControllerUnitTestCase.Если это так, то вам следует проводить модульные тесты, но насмехаться над уровнем домена (используя mockDomain и другие), поскольку вы хотите сосредоточиться на логике контроллера, а не на постоянстве.Тестируйте классы домена в правильных интеграционных тестах с использованием базы данных.

Все это описано в главе 10 документов: http://grails.org/doc/latest/

...