EEエンタープライズ・アプリケーション用のJUnitテストを作成して実行する方法について説明します。このチュートリアルでは、エンティティ・クラスとセッションBeanを含むWebアプリケーションを作成します。最初に、セッションBean用のJUnitテスト・クラスを作成し、埋込みEJBコンテナでそのテストを実行します。次に、プロジェクトにエンティティ・クラスを追加し、テスト・クラスを変更してエンティティ・クラス用のテスト・メソッドを追加します。チュートリアルの課題セッションBeanのテストプロジェクトの作成セッションBeanの作成セッションBeanのテストコンテナのプロパティを指定するためのテストの変更@BeforeClassおよび@AfterClass注釈の使用エンティティ・クラスのテストエンティティ・クラスの作成セッションBeanの変更エンティティ・クラスのテストソリューション・プロジェクトのダウンロードこのチュートリアルに従うには、次のソフトウェアとリソースが必要です。3.1.xまたは4.x注意:このチュートリアルにはJUnitプラグインが必要です。IDEのインストール時にJUnitプラグインをインストールしなかった場合は、プラグイン・マネージャを開き、「使用可能なプラグイン」タブを選択してJUnitプラグインをインストールしてください。前提条件このドキュメントは、次のテクノロジについて基本的な知識またはプログラミング経験を持つ読者を想定して書かれています。IDEこのチュートリアルを開始する前に、必要に応じて次のドキュメントをお読みください。終了したプロジェクトのZIPアーカイブはダウンロードできます。Webアプリケーションを作成します。プロジェクトの作成メイン・メニューから「ファイル」>「新規プロジェクト」([Ctrl]-[Shift]-[N]、Macの場合は[⌘]-[Shift]-[N])を選択します。Web」カテゴリから「Webアプリケーション」を選択します。「次」をクリックします。プロジェクト名をWebAppJUnitにし、プロジェクトの場所を設定します。専用フォルダを使用するオプションが選択されている場合は選択を解除します。「次」をクリックします。Web」に設定します。「終了」をクリックします。セッションBeanの作成この課題では、2つの数値を追加するメソッド1つを含む非常に単純なセッションBeanを作成します。「プロジェクト」ウィンドウでWebAppJUnitプロジェクトを右クリックし、「新規」>「その他」を選択します。JavaBeans」カテゴリで「セッションBean」を選択します。「次」をクリックします。「EJB名」に「MyBean」と入力します。「パッケージ名」に「bean」と入力します。「セッションのタイプ」として「ステートレス」を選択します。「終了」をクリックします。「終了」をクリックすると、新しいクラスがエディタに表示されます。エディタで、クラスに以下のメソッドaddNumbersを追加します。}}注意:@LocalBean注釈を追加したり、このチュートリアルでインタフェースを実装する必要はありません。ビューが明示的に指定されていない場合、デフォルトでは、インタフェースなしのビューが公開されます。セッションBeanのテストこの課題では、セッションBean用の、addNumbersメソッドをテストするテスト・クラスを作成します。IDEでは、ターゲット・クラス内のメソッドに基づいて新しいテスト・クラスとスケルトン・テスト・メソッドを生成できます。「プロジェクト」ウィンドウでMyBeanクラスを右クリックし、「ツール」>「テストを作成」を選択します。「フレームワーク」ドロップダウン・リストで「JUnit」を選択します。「テストを作成」ダイアログ・ボックスのデフォルト値を使用します。「OK」をクリックします。注意:JUnit単体テストを初めて作成するときは、JUnitのバージョンを指定する必要があります。4.x」を選択し、「選択」をクリックします。「OK」をクリックすると、IDEによってMyBeanTest.javaファイルが生成され、エディタでそのクラスが開かれます。「プロジェクト」ウィンドウで、IDEによって「テスト・パッケージ」ノードの下にテスト・クラスが生成されたことを確認できます。デフォルトでは、javax.ejb.embeddable.EJBContainer.createEJBContainer()をコールしてEJBコンテナ・インスタンスを作成するスケルトン・テスト・メソッドがIDEによってテスト・クラス内に生成されます。3.1埋込み可能APIの一部であるEJBContainerクラス内のメソッドの1つです。4.xがテスト・ライブラリとして自動的に追加されたことを確認できます。Serverライブラリを展開すると、ライブラリにglassfish-embedded-static-shell.jarが含まれていることを確認できます。JARには、埋込みEJBコンテナのソースは含まれていません。JARには、GlassFishのローカル・インストールが必要です。ローカルのGlassFishインストールのクラスパスは、プロジェクトのターゲット・サーバーによって決定されます。ターゲット・サーバーは、プロジェクトの「プロパティ」ダイアログ・ボックスで変更できます。生成されたスケルトン・テスト・メソッドを変更して、numberA、numberBおよびexpResultの値を指定し、デフォルトのfailのコールを除去します。container.close();}「プロジェクト」ウィンドウでプロジェクトを右クリックし、「テスト」を選択します。テストを実行すると、IDEで「テスト結果」ウィンドウが開き、テストの進捗状況と結果が表示されます。「出力」ウィンドウに次のような出力が表示されます。「テストを作成」ウィザードを使用したときに、IDEによってEJBコンテナを起動するためのコードを含むデフォルトのスケルトン・テスト・クラスが生成されました。この課題では、コンテナを起動する生成済のコードを変更して、埋込みコンテナ・インスタンスの追加のプロパティを指定できるようにします。テスト・クラスに以下のコード(太字部分)を追加します。container.close();}エディタを右クリックして「インポートを修正」([Alt]-[Shift]-[I]、Macの場合は[⌘]-[Shift]-[I])を選択し、java.util.HashMapおよびjava.util.Map用のインポート文を追加します。テストを再実行して、変更したテストが機能し、コンテナが正しく作成されることを確認します。「テスト結果」ウィンドウの「再実行」ボタンをクリックできます。@BeforeClassおよび@AfterClass注釈の使用この課題では、テスト・クラスを変更して、コンテナ・インスタンスを作成するメソッドと停止するメソッドを個別に作成します。これは、同じコンテナ・インスタンスを使用できる複数のテストを実行する場合に役に立つ場合があります。このようにすることで、コンテナ・インスタンスをテストごとに開いて閉じる必要がなくなり、かわりに、テストを実行する前に作成し、すべてのテストが完了した後で閉じるインスタンスを1つ作成します。この課題では、EJBコンテナを作成するコードをsetUpClassメソッドに移動します。setUpClassメソッドには、そのメソッドが最初に(テスト・クラス内の他のメソッドより前に)実行されることを示すために使用される@BeforeClass注釈が付いています。この例では、コンテナ・インスタンスがtestAddNumbersテスト・メソッドの前に作成され、コンテナは停止されるまで存在します。同様に、コンテナを停止するコードを@AfterClass注釈が付いたtearDownClassメソッドに移動します。テスト・クラスに以下のフィールドを追加します。container;コンテナを作成するコードをtestAddNumbersテスト・メソッドからsetUpClassメソッドにコピーします。container");}コンテナを閉じるコードをtestAddNumbersテスト・メソッドからtearDownClassメソッドにコピーします。container");}testAddNumbersから余分なコードを除去します。テスト・クラスは次のようになるはずです。}}コンテナの作成と停止が正しく行われることを確認するためにテストを再実行すると、「テスト結果」ウィンドウに以下のような出力が表示されます。container」と表示されたことがわかります。エンティティ・クラスのテストこの項では、エンティティ・クラスと持続性ユニットを作成し、エンティティ・マネージャを注入してエンティティにアクセスするようにセッションBeanを変更します。新しいエンティティ・クラスには、エントリのID番号を出力に表示する単純なメソッドを追加します。次に、データベース内のエントリを作成および確認するための単純なメソッドをセッションBeanにいくつか追加します。エンティティ・クラスの作成この項では、新規エンティティ・クラス・ウィザードを使用して、データベース接続の詳細とともにエンティティ・クラスと持続性ユニットを作成します。「プロジェクト」ウィンドウでWebAppJUnitプロジェクトを右クリックし、「新規」>「その他」を選択します。「持続性」カテゴリで「エンティティ・クラス」を選択します。「次」をクリックします。「クラス名」に「SimpleEntity」と入力します。「パッケージ」ドロップダウン・リストから「bean」を選択します。「主キー型」に「int」と入力します。「次」をクリックします。デフォルトの持続性ユニット名と持続性プロバイダを使用します。データ・ソースとして「jdbc/sample」を選択し、戦略として「ドロップして作成」を選択します。「終了」をクリックします。「終了」をクリックすると、新しいエンティティ・クラスがエディタに表示されます。「プロジェクト」ウィンドウの「構成ファイル」ノードを展開すると、持続性ユニットWebAppJUnitPUのプロパティを定義するpersistence.xmlファイルがIDEによって自動的に生成されたことを確認できます。エディタで、エンティティ・クラスに以下のprivateフィールドを追加します。name;ソース・エディタ内を右クリックして「コードを挿入」([Alt]-[Insert]、Macの場合は[Ctrl]-[I])を選択し、「取得メソッドおよび設定メソッド」を選択して「取得メソッドおよび設定メソッドの生成」ダイアログ・ボックスを開きます。ダイアログ・ボックスで「name」フィールドを選択します。「生成」をクリックします。クラスに以下のメソッドを追加します。Date();}@NamedQueriesおよびNamedQuery注釈を使用して名前付きSQL問合せを作成します。{デフォルト・コンストラクタを作成します。IDEでコンストラクタを自動生成する場合は、クラス宣言の横のガターに表示された提案アイコンをクリックできます。インポートを修正して、javax.persistence.NamedQueries、javax.persistence.NamedQueryおよびjava.util.Dateのインポート文を追加します。デフォルトで生成されるコードに加えて、エンティティ・クラスは次のようになるはずです。...}セッションBeanの変更この課題では、MyBeanセッションBeanを編集して、データベース表のデータを挿入および取得するためのメソッドを追加します。エディタでMyBean.javaを開きます。エディタ内を右クリックして「コードを挿入」([Alt]-[Insert]、Macの場合は[Ctrl]-[I])を選択し、ポップアップ・メニューから「エンティティ・マネージャの使用」を選択します。「エンティティ・マネージャの使用」を選択したときに、エンティティ・マネージャを注入するためにIDEによってクラスに以下のコードが追加されました。持続性ユニットの名前が自動的に生成されていることがわかります。em;以下のverifyおよびinsertメソッドを追加します。}}javax.persistence.Queryをインポートするようにインポートを修正し、変更内容を保存します。エンティティ・クラスのテストこの課題では、テスト・クラスを編集して、アプリケーションがEJBを検索すること、およびinsertメソッドとverifyメソッドが正常に動作することをテストするメソッドを追加します。JavaDBデータベースを起動します。エディタでMyBeanTest.javaテスト・クラスを開きます。テスト・クラスを編集して、以下のtestInsertテスト・メソッドを追加します。test");}「プロジェクト」ウィンドウでプロジェクト・ノードを右クリックし、ポップアップ・メニューから「テスト」を選択します。「テスト結果」ウィンドウが開き、以下のような出力が表示されます。テスト・クラスに追加された出力メッセージから、テストの進捗状況とテストの実行順序がわかります。これで、セッションBean用のテストが完成し、エンティティ・クラスの接続が機能することがわかったので、アプリケーションのWebインタフェースのコーディングを開始できます。ソリューション・プロジェクトのダウンロード次の方法で、このチュートリアルにソリューションをプロジェクトとしてダウンロードできます。終了したプロジェクトのZIPアーカイブをダウンロードします。次の手順を実行して、プロジェクト・ソースをNetBeansのサンプルからチェックアウトします。メイン・メニューから「チーム」>「Subversion」>「チェックアウト」を選択します。「チェックアウト」ダイアログ・ボックスで次のリポジトリURLを入力します。https://svn.netbeans.org/svn/samples~samples-source-code「次」をクリックします。「参照」をクリックして「リポジトリ・フォルダを参照」ダイアログ・ボックスを開きます。ルート・ノードを展開し、samples/javaee/WebAppJUnitを選択します。「OK」をクリックします。ソースのローカル・フォルダを指定します(ローカル・フォルダは空である必要があります)。「終了」をクリックします。「終了」をクリックすると、IDEではローカル・フォルダがSubversionリポジトリとして初期化され、プロジェクト・ソースがチェックアウトされます。チェックアウトが完了するときに表示されるダイアログで、「プロジェクトを開く」をクリックします。注意:ソースをチェックアウトするには、Subversionクライアントが必要です。IDEでのSubversionガイドのSubversionの設定の項を参照してください。EEアプリケーションの開発方法の詳細は、次のリソースを参照してください。6チュートリアルを参照してください。EE開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。