Grails UnitTest - PullRequest
       15

Grails UnitTest

0 голосов
/ 04 мая 2010

Привет (возможно, глупый вопрос)

как получить класс домена из базы данных в тесте?

class PollServiceTests extends GrailsUnitTestCase {
    Integer id = 1

    void testSomething() {
       Teacher teacher1 = Teacher.get(id)
       assert teacher1 != null
    }
}

Я всегда получаю ноль или

Нет подписи метода: cz.jak.Teacher.get () применим для типы аргументов: (java.lang.Integer) значения: [1]

спасибо большое Том

Ответы [ 2 ]

5 голосов
/ 04 мая 2010

У модульных тестов Grails нет доступа к среде Grails, поэтому вам нужно смоделировать объекты вашего домена.

void testSomething() {
    mockDomain(Teacher)
    def teacher = new Teacher(...)
    assertNotNull teacher.save(insert:true)
    assertNotNull country.countryId
    def found = Teacher.get(country.countryId)
}
0 голосов
/ 06 мая 2010

Существует необязательный второй параметр для mockDomain, который принимает List.Если вы передадите список, методы get, list, save, update, delete будут работать с этими объектами в списке (если есть).

void testSomething() {
    def teachers = []
    for (i in 0..9) {
      teachers.add(new Teacher(name: "teacher${it}"))
    }
    mockDomain Teacher, data

    Teacher t2 = Teacher.get(2)
    assertEquals "teacher2", t2.name
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...