Hallo Ich habe einen Controller ApiController genannt, die einen Dienst ApiService wie so genannte verwendet:Grails Spock Test-Controller und Service
def createCategory(){
def jsonObj = request.JSON
jsonObj.each{ key, value ->
params.put(key,value)
}
render apiService.createCategory(params)
}
der gut arbeitet. Aber ich kann nicht scheinen, einen Test dafür zu schreiben.
Dies ist, wie weit ich habe:
@TestFor(ApiController)
@Mock([Category,ApiService])
class CategorySpec extends Specification {
def setup() {
}
def cleanup() {
}
void "test"() {
setup:
def apiService = Mock(ApiService)
when:
request.method = 'POST'
request.requestMethod = 'POST'
params.categoryID = 'test'
controller.createCategory()
then:
println(response)
1==1
}
Daraus ich die folgende Fehlermeldung erhalten:
java.lang.NullPointerException: Cannot invoke method createCategory() on null object
Dies ist natürlich, weil es nicht meine apiService Bohne sehen kann. Also meine Frage ist, wie mache ich das in Spock?
Wie ist Ihr Controller, der createCategory() sieht ... oder geben Sie eine detaillierte Struktur dieses Controllers. –