Модульное тестирование насмешек по критериям - PullRequest
0 голосов
/ 14 марта 2012

Я новичок в Grails и пытаюсь написать модульные тесты для класса Service, у него есть метод, он вызывает критерии для объекта домена.

Как вы высмеиваете поведение домена в следующем методе класса обслуживания?

{def checkForDuplicates(firstName, lastName, gender, birthDate, accountId){
 def duplicateIndividual = Individual.withCriteria{
           eq('firstName',firstName)
           eq('lastName',lastName)
           eq('gender',gender)
           eq('birthDate',birthDate)
           and{
               accounts{
                   eq('id', accountId)
               }
           }
    }

    if(duplicateIndividual){
        log.error("Found duplicate for ${duplicateIndividual.firstName}
      ${duplicateIndividual.lastName}")
        return true
    }
    return false
}"

1 Ответ

1 голос
/ 14 марта 2012

В Grails 2 вы можете использовать функциональность Mock () и mockDomain для настройки ваших критериев,

@TestFor(MyService)
@Mock(Individual)

Тогда вы просто создаете доменные классы как обычно.

http://grails.org/doc/latest/guide/single.html#unitTestingDomains

До Grails 2 вы можете изменить метакласс вашего запроса, например,

Individual.metaClass.static.withCriteria = { [ i1, i2 ] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...