2013-04-30 4 views
3

Я пытаюсь написать интеграционный тест для классов домена в моем проекте. Однако каждый раз, когда я запускаю тест, я получал некоторые ошибки.Тест интеграции Grails для класса домена: отсутствие сигнатуры исключения метода

Мой код ниже:

class ProductIntegrationTest extends GroovyTestCase { 

    void testSave() { 
     def product = new Product(name: "phone") 
     product.save(flush: true, failOnError: true) 
     assert..... 
    } 
} 

После того как я запустить тест, исключение составляет:

groovy.lang.MissingMethodException: No signature of method: Product.save() is applicable for argument types:() values: [] 
Possible solutions: save(), save(boolean), save(java.util.Map), wait(), last(), any() 

Однако, если я поставлю @TestFor(Product) аннотацию для класса домена, ошибка ушла , Я нашел в документе для теста интеграции мы не можем поставить аннотацию @TestFor, потому что это только для модульного теста.

У кого-нибудь есть идея?

+0

Вы поместили этот класс в папку 'tests \ integration'? –

+1

Я настоятельно рекомендую использовать команду grails create-integration-test для создания теста интеграции. Вы не увидите эту проблему, если класс тестирования находится в соответствующем каталоге, как указано @Sergio. – dmahapatro

+0

В Sérgio, все тесты интеграции помещаются в папку test/integration папки, и я использовал командную строку для создания тестов интеграции. – ttt

ответ

2

Поздний ответ, но я столкнулся с этим сегодня. Одна из возможных проблем заключается в том, что другой тест в вашем каталоге test/integration распространяется на GrailsUnitTestCase. При выполнении grails test-app integration это дает проблемы для последующих тестов, но не для теста, который ненадлежащим образом распространяется GrailsUnitTestCase. Перемещение этих классов на test/unit или изменение расширения на GroovyTestCase устранит эту проблему.

0

У меня была такая же ошибка. Я обнаружил, что забыл настроить источник данных для тестовой среды. В DataSource.groovy убедитесь, что вы настроили источник данных для каждой установки источника данных для разработки.

Смежные вопросы