統合テストでフィルターを使用するコントローラーをテストする方法はありますか?
単体テストに @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()
}
}
}