簡體   English   中英

Grails 2.2.2:使用GMock在ControllerTests中測試攔截器

[英]Grails 2.2.2: Testing interceptors in ControllerTests with 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
   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中那樣通過攔截器。

攔截器的測試方式是否有變化?

我到處搜尋,似乎沒有人對此有答案。 有關測試攔截器的文檔很少。 有任何想法嗎?

在集成測試期間調用動作時,Grails不會調用攔截器或servlet過濾器。 您應該隔離測試攔截器和過濾器,必要時使用功能測試。

(未經測試)我不確定這是否適用於GMock。 但是集成測試文檔中另有提及。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM