More Than Five
More Than Five

Reputation: 10419

How to call a Service in a Grails integration test

This thread describes how to call a Service in a view: How do I get an instance of a Grails service programmatically?

This describes how to call it in a Servlet: How do I get an instance of a Grails service programmatically?

This one says how to call it in a Controller: How to dynamically select a service in Grails

I need to get a handle to my service in an integration test. Is this possible?

Upvotes: 2

Views: 1815

Answers (2)

dmahapatro
dmahapatro

Reputation: 50245

Have a look at Testing Controllers with Service.

Gist:
You have to initialize the service (spring bean) to controller in the test.

class FilmStarsTests extends GroovyTestCase {
    def popularityService
    void testInjectedServiceInController () {
        def fsc = new FilmStarsController()
        fsc.popularityService = popularityService
        fsc.update()
    }
}

Services are autowired in integration tests as in controllers.

Upvotes: 6

BoxerBucks
BoxerBucks

Reputation: 3124

If its an integration test, you have access to the entire runtime so just inject it like you do normally.

def someService

Upvotes: 8

Related Questions