2014-06-05 4 views
3

grails 2.1.0에서 다음과 같은 문제가 발생했습니다. 나는 쿼리라는 이름의 도메인을 가지고 있습니다.grails에서 명명 된 쿼리를 조롱하는 방법?

List result = Domain.namedQuery(someParams).list()

그래서, 나는 내 서비스의 단위 테스트에서 모의 ​​결과를 싶습니다 서비스에서 나는이 명명 된 쿼리의 결과() 메소드리스트를 호출합니다. 그것을 할 수있는 옵션이 있습니까?

답변

0

저는 여러분이 메타 클래스를 변경할 수 있다고 믿습니다.

Domain.static.metaclass.namedQuery = { someParams -> 
    // Assert and return data 
} 

은 또한 정확히 PARAMS의 종류와 수와 일치하거나 작동하지 않을 수 있는지 확인하십시오 : 당신이 테스트 오염을하지 않도록 단지뿐만 아니라 클래스를 @Mock해야합니다.

+0

나는 그것을 시도했다. 그것은 나를 위해 작동하지 않았다 ... 어떤 반환 유형을 사용해야합니까? 도메인 클래스의'List'를 반환하려고하면'list()'를 호출하면 빈 List가 반환됩니다. – ddd

+0

@ddd PagedResultList가 필요하다고 생각합니다. List 자체에 list()라는 메서드가 있다고 생각하지 않습니다. – Igor

관련 문제