多くのテストシナリオではインターセプタをテストするのではなく、他のコードをテストしたいので、必要に応じていくつかのインターセプタをテストします(arquillian)。だから私は、テストでテストされるべきものに焦点を当てるためにオーバーライド/ディスエーブルされたインターセプタを使ってテストを実行したいと思います。Java EEインターセプタを無効/無効にする方法は?
私は既存のインターセプタに触れない方がいいでしょうが、他の方法がない場合は可能性があります。
多くのテストシナリオではインターセプタをテストするのではなく、他のコードをテストしたいので、必要に応じていくつかのインターセプタをテストします(arquillian)。だから私は、テストでテストされるべきものに焦点を当てるためにオーバーライド/ディスエーブルされたインターセプタを使ってテストを実行したいと思います。Java EEインターセプタを無効/無効にする方法は?
私は既存のインターセプタに触れない方がいいでしょうが、他の方法がない場合は可能性があります。
私がこれまで行ってきた方法は、テストと実際のアプリケーションのために別々のbeans.xmlファイルを用意することです。次に、それに応じてクラスパスを変更します。
ただし、annotated bean-discovery-modeを使用しているため、beans.xmlにインターセプタを指定していない場合、この解決策は機能しません。
beans.xmlを作成してインターセプタを(?)置き換える方法は?私はbeans.xmlをArquillian-warに入れようとしましたが、TransactionScopeとEntityManagerの注入が失われてしまったので、私は悪いところで終わりましたが、間違っていたと思います... – Roland
それは問題です。インターセプタがもともとbeans.xmlを介して登録されている場合は、bean.xmlを切り替えて無効にすることができます。しかし、私が理解しているように、あなたのインターセプタは、アノテーションまたはあなたがアクセスできないいくつかのbean.xmlを通して登録されています。この場合、どのように無効にするのか、それがすべて可能なのかどうかはわかりません。 – bezmax
あなたの 'beans.xml'を表示してください。 –
@CássioMazzochiMolin注釈付きBeanディスカバリーモードを使用しているため、beans.xmlはこのケースでは再生されません。 – Roland
'bean-discovery-mode'なしでテストするために' beans.xml'を1つ持つことができます。 –