有没有办法测试在集成测试中使用过滤器的控制器?
似乎有一种方法可以使用 @Mock 注释进行单元测试,而不是将控制器调用包装在 withFilter 闭包上。
但是我无法在集成测试中测试过滤器,从我的观点来看,这应该是非常直接的。
更新
所以这是我找到的解决方案。我没有使用 @Mock 注释,而是实例化了 FiltersUnitTestMixin 类并用必要的值填充它。
public class ControllerTest {
def controller = new Controller()
FiltersUnitTestMixin f = new FiltersUnitTestMixin()
@Before
public void setup() {
f.grailsApplication = grailsApplication
f.applicationContext = grailsApplication.mainContext
f.mockFilters(ControllerFilters)
}
@Test
public void shouldPassTheTest() {
f.withFilters(action:"actionName") {
controller.actionName()
}
}
}