0

私たちのコードベースがまだ 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 で使用されていたようにインターセプターを通過しないため、「予期しないメソッド呼び出し」というエラーが呼び出されています。

インターセプターのテスト方法に変更はありましたか?

私は周りを検索しましたが、誰もこれに対する答えを持っていないようです。インターセプターのテストに関するドキュメントはまばらです。何か案は?

4

1 に答える 1

0

Grails は、統合テスト中にアクションを呼び出すときに、インターセプターまたはサーブレット フィルターを呼び出しません。必要に応じて機能テストを使用して、インターセプターとフィルターを分離してテストする必要があります。

(未テスト) これが GMock に適用できるかどうかはわかりません。しかし、統合テストのドキュメントでは、そうではないと述べています。

于 2013-06-26T03:11:18.943 に答える