2015-08-24 55 views
1

我有一個測試在調用給定方法之前使用'withInterceptors'方法調用控制器的攔截器。我怎樣才能斷言其中一個攔截器的before()方法返回?還是有更好的方法來調用攔截器來測試它?在方法之前測試Grails 3攔截器

回答

1

可以方法之前直接注入的攔截對象上調用

@TestFor(AuthInterceptor) 
class AuthInterceptorSpec extends Specification { 

    void "Invalid token fails auth"() { 
     when: 
     withRequest(controller:"book") 
     interceptor.request.addHeader(HttpHeaders.AUTHORIZATION,"Bearer FOOBAR") 

     then: 
     !interceptor.before() 
    } 

    void "Valid token passes auth"() { 
     when: 
     withRequest(controller:"book") 
     interceptor.request.addHeader(HttpHeaders.AUTHORIZATION,"Bearer someValidToken") 

     then: 
     interceptor.before() 
}