drieu
drieu

Reputation: 367

Grails Unit Test

I have unit test wich extends GrailsUnitTestCase :

 import grails.test.GrailsUnitTestCase
 class HttpdParserSpec extends GrailsUnitTestCase {

 } 

However I saw in Grails documentation that is deprecated. I tried to use the following :

import grails.test.mixin.TestFor

@TestFor(HttpdParser)
class HttpdParserSpec {
}

I obtain the following error :

Cannot add Domain class [class fr.edu.toolprod.parser.HttpdParser]. It is not a Domain!

It's true.It's not a Domain class.I only want test a simple class HttpdParser.

What am I doing wrong ?

So how to make a simple unit test ? Have you an example ?

Upvotes: 1

Views: 137

Answers (2)

Jay Prall
Jay Prall

Reputation: 5465

You can also just use the @TestMixin annotation with the GrailsUnitTestCaseMixin like this:

import grails.test.mixin.support.GrailsUnitTestMixin
import grails.test.mixin.TestMixin

@TestMixin(GrailsUnitTestMixin)
class MyTestClass {}

Upvotes: 0

Jeff Scott Brown
Jeff Scott Brown

Reputation: 27255

Don't use the TestFor annotation. Just write a unit test as you normally would. TestFor is useful for rigging up Grails artifacts and relevant elements of the environment for unit testing them.

class HttpdParserSpec extends spock.lang.Specification {
    void 'test something'() {
        when:
        def p = new HttpdParser()
        p.doSomething()

        then:
        p.someValue == 42
    }
}

Upvotes: 1

Related Questions