2012-03-14 3 views
0

나는 grails에 새로운 도구 클래스를 작성하려고 시도했다.이 메소드는 도메인 객체에 대한 기준을 호출한다.단위 테스트 조준을위한

다음과 같은 서비스 클래스 방법으로 도메인 동작을 조롱합니까? 당신이 당신의 기준을 설정하기 위해 모의() 기능과 mockDomain을 사용할 수 있습니다 Grails의 2에서

{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

, 당신처럼

@TestFor(MyService) 
@Mock(Individual) 

은 그럼 그냥 일반적으로 도메인 클래스를 만들 수 있습니다.

Individual.metaClass.static.withCriteria = { [ i1, i2 ] } 
같은

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

, 당신은 당신의 쿼리의 메타 클래스를 변경할 수 있습니다 (2) Grails의에 앞서, 뭔가