2012-07-05 3 views
0

내가 할 통합 테스트 내부에 지속 데이터를 확인할 수 있습니다가 어떻게 다음 내 통합 테스트에서

void testSave() { 
    def controller = new BookController() 
    controller.params.title = "Awesome Book" 
    controller.params.pages = 1000 
    controller.save() 
    // i want to check book data here 
} 

가 어떻게이 Book 내 컨트롤러가 지속 및 확인 검색 할 수있는 title == "Awesome Book"pages == 1000? 컨트롤러에서 컨트롤러의 bookInstance 변수에 액세스 할 수 있습니까?

데이터베이스에 부트 스트랩 데이터가 있기 때문에 Book.get(1)이 올바른 Book을 제공한다고 가정 할 수 없습니다. 컨트롤러는 URL이 id이 아니므로 관련이없는 페이지 인 Book으로 리디렉션됩니다.

void testSave() { 
    def oldIdList = Book.list()*.id 
    // set up the parameters and call controller.save() 
    def insertedId = Book.list()*.id - oldIdList 
    // check Book.get(insertedId) properties 
} 

하지만 난 더 나은 방법이 바라고 있어요 ...

답변

2

을 가정하면 찾아 볼 수 Grails의 커널 2.0.x를 사용 : 내가 생각할 수있는 유일한 방법은 같은 것을 할 것입니다 findBy * 메서드를 사용하는 해당 속성에 대한 책 :

def book = Book.findByTitle("Awesome Book") 
assertNotNull book 
+1

동적 찾기는 2.0에 해당하지 않습니다. –

관련 문제