2014-11-04 51 views
1

我是通過Grails的集成測試文檔,我注意到這條線:調用集成測試過程中的行爲時執行Grails的過濾器在集成測試

Grails的不調用攔截器或Servlet過濾器。

來源:http://grails.org/doc/latest/guide/testing.html#integrationTesting

  1. 這是爲什麼?如果Grails確實調用了過濾器,它會讓我的測試生活變得更加簡單。我的項目大量使用過濾器,並且我的許多控制器都依賴於我的過濾器來執行任何操作。

  2. 我在想它,它似乎可以使用groovy黑魔法自動執行集成測試中的過濾器。有沒有人已經做過這個,或者這是我必須寫的東西?

回答

4

用於集成測試的環境與運行應用程序期間可用的環境類似; Spring是活躍的,插件被加載,數據庫可用,等等。除了Web服務器之外幾乎所有的東西。沒有服務器,就沒有真正的請求,沒有servlet過濾器,也沒有Grails過濾器(它們是Spring控制器HandlerAdaptor的包裝器)。在測試控制器時,可以通過Spring servlet API模擬類訪問請求和響應。但真正的Web請求生命週期沒有一個是活動的,它只是被模擬。

你說得對,它應該可以用一些自定義代碼來實現。當你這樣做時,請考慮將其製作成插件,以便我們都可以共享:)