grails plugin multi-tenant-single-db를 사용하고 있습니다. 그 맥락에서 우리는 일시적으로 세입자 제한을 제거하는 spock 테스트를 작성해야합니다. 지역 내 거주자, 그래서 내 방법은 다음과 같습니다Spock 테스트중인 메소드가 닫힘을 포함하고있을 때 테스트
def loadOjectDetails(){
Location.withoutTenantRestriction{
// code here to retrieve specific items to the object to be loaded
render(template: "_loadDetails", model:[ ... ]
}
}
방법은 예상하지만, 오류 출력이 시사하는 테스트 범위에서 방법을 넣어 시도로 실행한다 :
groovy.lang.MissingMethodException: No signature of method: com.myPackage.myController.Location.withoutTenantRestriction() is applicable for argument types:
와 스택 추적이 거기에서 유래합니다.
이것을 스텁해야합니까? withoutTenantRestriction은 전체 메서드 로직을 감싸는 래퍼입니다.
업데이트 : 테스트 코드는 다음과 같습니다
given:
params.id = 3002
currentUser = Mock(User)
criteriaSetup()
controller.getSalesOrder >> salesOrders[2]
when:
controller.loadOrderManageDetails()
then:
(1.._) controller.springSecurityService.getCurrentUser() >> currentUser
expect:
view == 'orderMange/orderManageDetail'
model.orderInstance == salesOrders[2]
테스트 코드는 어떻게 생겼는가? – railsdog
요청에 따라 테스트 코드로 질문을 업데이트했습니다. – TroyB