I'm just starting out with grails 2.3 and I have problems getting the unit tests to run. What I've done so far is I've run
grails create-app new-app
grails create-service NewService
grails test-app
This produces
| Running 1 unit test...
| Completed 0 unit test, 0 failed in 0m 2s
| Tests PASSED - view reports in C:\Git\aspera_web\target\test-reports
So far so good but if I edit the method
void "test something"() {
}
in the NewServiceSpec class to
void "test something"() {
assert false
}
and run again I again get
| Running 1 unit test...
| Completed 0 unit test, 0 failed in 0m 2s
| Tests PASSED - view reports in C:\Git\aspera_web\target\test-reports
I then looked into the spock documentation and tried to edit my test again. This time to
void "test something"() {
expect: 1 == 2
}
which produces
| Running 1 unit test...
| Running 1 unit test... 1 of 1
| Failure: test something(aspera_web.NewServiceSpec)
| Condition not satisfied:
false
at aspera_web.NewServiceSpec.test something(NewServiceSpec.groovy:19)
| Completed 1 unit test, 1 failed in 0m 2s
| Tests FAILED - view reports in C:\Git\aspera_web\target\test-reports
which looks promising so then the next step is to test methods in my NewService class so I again change my test to
def service = new NewSevice()
void "test something"() {
expect: service.serviceMethod()
}
and when I run it I get
| Running 1 unit test...
| Running 1 unit test... 1 of 1
| Failure: test something(aspera_web.NewServiceSpec)
| java.lang.NullPointerException
at aspera_web.NewServiceSpec.test something(NewServiceSpec.groovy:21)
| Completed 1 unit test, 1 failed in 0m 2s
| Tests FAILED - view reports in C:\Git\aspera_web\target\test-reports
just for good measure I also added a test directly from the Spock exmaples
def stack = new Stack()
def "size"() {
expect: stack.size() == 0
}
Which works like a charm...
So at last my question:
- How do I test my own service/controller methods (I get the exact same result if I replace create-service with create-controller)
EDIT
Apparently this is a bug in Grails 2.3.0 see my answer below.