当我们的代码库还在 Grails 2.1.4 中时,我们的拦截器的这个单元测试可以完全覆盖:
@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()
}
}
切换到 Grails 2.2.2 后,这似乎不像以前在 2.1.4 中那样涵盖测试。错误“意外的方法调用”被调出,因为它不会像在 2.1.4 中那样通过拦截器。
拦截器的测试方式是否发生了变化?
我四处寻找,似乎没有人对此有答案。关于测试拦截器的文档很少。有任何想法吗?