6

私はアルキリア星人に頭を包み込もうとしていますが、in-containerモードとモードの違いを根本的に理解していませんas-client

私の理解では、Arquillian / ShrinkWrapを使用すると:

  • 統合およびテストするコンポーネントのみを含むアーカイブを作成します
  • このメモリ内アーカイブを実際のコンテナにストリーミングします(デプロイします)
  • コンテナ内でテストとしてアーカイブを実行します
  • あなたはそのテストの結果として何が起こるかについて主張します

in-containerしたがって、私の観点からは、テストは常にコンテナー内で実行されるため、すべてが常にそうであるように「感じ」ます。

これら2つのモードの違いと、両方のモードが適している統合テストの種類を理解するのを手伝ってください。両方のモードでテストを実行する理由/方法を説明する具体的なコード例(リファレンスガイドから直接の漠然としたものではありません!)を提供するためのボーナスポイント。前もって感謝します!

4

1 に答える 1

2
  • コンテナ内:ホワイトボックス、統合テストに使用
  • as-client:ブラックボックス、機能テストに使用

つまり、UI /機能テスト(本番環境でアプリを使用する「クライアント」の役割として)では、as-clientモードを使用します@RunAsClientin-containerモードを使用した、真の統合テスト(アプリ自体に関する内部の「ホワイトボックス」知識が必要なクラス間の依存関係のテスト) 。

どちらの場合も、ShrinkWrapとArquillianはメモリ内アーカイブ(JAR / WAR / EAR)を構成済みのコンテナーに直接デプロイします(JBoss独自のストリーミングプロトコルを介して)。ただし、テストを異なるモードで実行すると、コンテナーへのアクセスが異なります。テストモードで。

于 2012-07-04T18:33:32.130 に答える