grailsApplication access in Grails unit Test

后端 未结 3 1666
猫巷女王i
猫巷女王i 2021-02-15 04:20

I am trying to write unit tests for a service which use grailsApplication.config to do some settings. It seems that in my unit tests that service instance could not access the c

3条回答
  •  长情又很酷
    2021-02-15 04:55

    If you use @TestFor Grails (2.0) already mock grailsApplication for you, just set your configs, but do not declare the grailsApplication. Doing that overrides the mocked instance.

    @TestFor(MyService)
    class MyServiceTests {
    
      @Before
      public void setUp() {
        grailsApplication.config.something = "something"
      }
    
      @Test
      void testSomething() {
        MyService service = new MyService()
        service.grailsApplication = grailsApplication
        service.doSomething()
      }
    
    
    }
    

    EDIT:

    You declared a String, to add to config you must parse this. See here an example.

    Basically you use the ConfigSlurper().parse() to get a ConfigObject, and use grails.config.merge() to add the contents to the config.

提交回复
热议问题