Ich verwende Grails Plugin Multi-Tenant-Single-Db. In diesem Zusammenhang muss ich einen Spock-Test schreiben, in dem wir die Mieterbeschränkungen vorübergehend entfernen. Die Lage ist mein Mieter, so meine Methode sieht wie folgt aus:Spock Test, wenn die zu testende Methode den Abschluss enthält
def loadOjectDetails(){
Location.withoutTenantRestriction{
// code here to retrieve specific items to the object to be loaded
render(template: "_loadDetails", model:[ ... ]
}
}
Das Verfahren läuft wie erwartet, aber versuchen, Verfahren unter Testabdeckung setzen der Fehlerausgang legt nahe, dass:
groovy.lang.MissingMethodException: No signature of method: com.myPackage.myController.Location.withoutTenantRestriction() is applicable for argument types:
und ein stacktrace, dass kommt von dort auf.
Muss ich dies stubben? Die WithoutTenantRestriction ist ein Wrapper um meine gesamte Methodenlogik.
UPDATE: Der Test-Code sieht wie folgt aus:
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]
Wie sieht der Testcode aus? – railsdog
Ich aktualisierte die Frage mit meinem Testcode wie angefordert – TroyB