Unit testing Grails 2.2.2:使用GMock在ControllerTests中测试拦截器
当我们的代码库仍在Grails 2.1.4中时,这个针对拦截器的单元测试在全覆盖范围内工作:Unit testing Grails 2.2.2:使用GMock在ControllerTests中测试拦截器,unit-testing,grails,groovy,controllers,gmock,Unit Testing,Grails,Groovy,Controllers,Gmock,当我们的代码库仍在Grails 2.1.4中时,这个针对拦截器的单元测试在全覆盖范围内工作: @Before void setUp() { gmc = new GMockController() apiProducts = gmc.mock() api.products.returns(apiProducts).stub() controller.api = api } void testBeforeInterceptor() { // Arrange
@Before
void setUp() {
gmc = new GMockController()
apiProducts = gmc.mock()
api.products.returns(apiProducts).stub()
controller.api = api
}
void testBeforeInterceptor() {
// Arrange
setUp()
def ctrl = gmc.mock(controller)
params.id = 1
ctrl.actionName.returns('view')
apiProducts.get(params.id)
// Act
gmc.play {
controller.beforeInterceptor()
}
}
在切换到Grails2.2.2之后,这似乎不像2.1.4中那样涵盖了测试。正在调用错误“意外方法调用”,因为它不会像2.1.4中那样通过拦截器
拦截器的测试方式有变化吗
我到处寻找,似乎没有人知道答案。关于测试拦截器的文档很少。有什么想法吗
Grails在调用时不调用拦截器或servlet过滤器
集成测试期间的操作。您应该测试拦截器和
隔离过滤器,必要时进行功能测试
(未经测试)我不确定这是否适用于GMock。但doc提到了其他方面。我也研究过,但谢谢你提出:)