2011-05-12 7 views
0

단위 테스트 중에 저장된 도메인 개체에 액세스하려고하므로 컨트롤러 메서드가 단위 테스트의 범위 밖에있는 도메인 클래스를 저장할 때 해당 메서드에 액세스하여 해당 속성 집합을 테스트 할 수 있습니다.grails/groovy : 단위 테스트시 저장된 도메인 객체에 어떻게 접근합니까?

domainClassesInfo (DefaultArtefactInfo), savedMetaClasses에서이 항목을 조사했지만 성공하지 못했습니다.

def MyControllerMethod() { 
    //do stuff 
    MyDomainClass myDomainClass = new MyDomainClass(attribute1:value1,attribute2:value2) 
    myDomainClass.save() 
} 

어떤 생각을 어떻게 추출하는 감사 많은 저장된 도메인 클래스

답변

2

컨트롤러가 IF : 컨트롤러에서 다음

void testMyControllerMethod() { 
    mockDomain(MyDomainClass) 
    controller.myControllerMethod() 
    //get MyDomainClass instance here for test assertions 
    //assertEquals value1, myDomainClass.attribute1 
} 

-

이 용이해야 뭔가 것 같아 MyDomainClass의 새 인스턴스를 저장하는 유일한 사람이면 다음 작업을 수행 할 수 있습니다.

void testMyControllerMethod() { 
    mockDomain(MyDomainClass) 
    controller.myControllerMethod() 
    //get MyDomainClass instance here for test assertions 
    def result = MyDomainClass.list()[0] 

    assertEquals value1, result.attribute1  
} 
+0

감사합니다. MyDomainClass.list()는 복잡한 해결 방법 및 통합 테스트가 필요하지 않도록 절대적인 노력을 기울였습니다. 대단히 감사합니다. – Alex

관련 문제