Grails를 처음 사용했습니다. 내 웹 응용 프로그램에서 단위 테스트 spock을 사용하고 있습니다.컨트롤러 내의 Grails 유닛 테스트 조롱 도메인 클래스
검색 기능을 위해 검색 가능한 플러그인을 사용했습니다. 테스트 나는
void "action search questions : search with blank search query"() {
setup:
controller.params.q=""
mockForConstraintsTests(Question)
mockDomain(User)
def question1 =new Question(title:'demo1', owner:new User(username:"Jini").save())
def question2 =new Question(title:'demo2', owner:new User(username:"Jini").save())
Question.search() >> [question1,question2]
when:
controller.search()
then:
view == '/question/include_questionlist'
}
을 정의하면서
def search(SearchQueryCommand searchQueryCommand) {
def question
if (!searchQueryCommand.q?.trim() && !searchQueryCommand.tag?.trim() && !searchQueryCommand.name?.trim()) {
params.sort='sortableTitle'
params.order='desc'
question = Question.search(MessageStatusEnum.ACTIVE.getType().toString(), params)
}
render(view: "include_questionlist", model: [questionList: question.results, totalSize:question.total , max:params.max?:'Constants.PAGINATION_DEFAULT_MAX', pagination:true ,questionDescription:true])
}
하지만 Question.search() 메소드를 조롱 할 수 없습니다 내 컨트롤러 검색 방법에
는 다음과 같이 정의된다.Failure: action search questions : search with blank search query(com.orb.question.QuestionControllerSpec)
| groovy.lang.MissingMethodException: No signature of method: com.orb.question.Question.search() is applicable for argument types: (java.lang.String, org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [1992, [q:, sort:sortableTitle, order:desc]]
Possible solutions: each(groovy.lang.Closure), attach(), merge(), refresh(), save(), attach()
at org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:97)
at com.orb.question.QuestionController.search(QuestionController.groovy:115)
at com.orb.question.QuestionControllerSpec.action search questions : search with blank search query(QuestionControllerSpec.groovy:200)
| Completed 22 spock tests, 1 failed in 7480ms
로 수신
오류 메시지 누구도 날이 문제를 해결하는 데 도움이 바랍니다.
미리 감사드립니다.
테스트 케이스에서 메소드를 동적으로 추가하는 방법을 알고 계시다면 해결책을 찾도록하십시오. – JayKay