JMX MBean JUnit テストの作成
JMX JUnit テストは JMX MBean 配備関連の手順を処理する JUnit テストであり、開発者は MBean の属性と操作のテストに焦点を当てることが可能です。
MBean ユニットのテストを実装するには、次の 5 つの手順を行う必要があります。
1) MBean JUnit テストを生成する
JMX JUnit テストは次の場所から生成できます。
- 「JMX MBean 」ウィザード。MBean の作成中に、JUnit テストケースを生成できます。このウィザードを使用して、任意の種類の MBean (主に標準 MBean および動的 MBean) のテストケースを生成できます。新しい MBean の JUnit テストを生成する場合は、このウィザードの使用をお勧めします。
- 「JMX MBean JUnit テスト」ウィザード。このウィザードを使用して、既存の MBean に JMX JUnit テストを生成できます。標準 MBean のテストを生成する場合は、この方法が最も適しています。動的 MBean のテストを生成する場合は、MBean の配備関連の手順で処理するだけです。テストを行いたい属性と操作のそれぞれに、テストケースを手動で追加する必要があります。 この MBean クラスにすでにテストが存在する場合 (テスト領域の <mbean package>.<MBeanClassName> テストファイル名で検索)、テストを作成できません。
- 「管理」メニューからアクセス可能な「JUnit テストを作成」コンテキストアクション。MBean が選択されたときに、アクションが有効になります (テストが存在しない場合)。このアクションは、前述したウィザードと同様に動作します。
MBean コンストラクタの選択
テストする MBean には、複数のコンストラクタを持たせることができます。「JMX MBean JUnit テスト」ウィザードまたは「JUnit テストを作成」アクションを使用して JUnit テストを生成した場合は、MBean コンストラクタの一覧からコンストラクタを選択するよう要求されます。
「JMX MBean」ウィザードを使用して JUnit テストを生成した場合は、生成された MBean のデフォルトコンストラクタが使用されます。
2) 生成された JUnit テストで MBean の構成を更新する
テスト中の MBean が、構築中にいくつかのパラメータを必要とする場合は、createMBean メソッドを使用してそれらのパラメータを提供できます。
createMBean メソッドに移動して、MBean コンストラクタの呼び出しを更新します。MBean コンストラクタが空の場合、この手順は必要ありません。
次は、MBean クラスの MYClass が Object パラメータを要求している例です。
public Object createMBean() {
//有効な値を持つ MYClass(Object o) コンストラクタのパラメータを更新します。
return new MYClass(null);
}
3) MBean 属性テストにテストロジックを追加する
個々の属性 (該当する場合) で、テストケースが生成されます。テストケースには属性を取得する呼び出しが含まれています。
属性を取得したあと、fail メソッドの呼び出しが生成されます。fail メソッドの呼び出しはテストロジックで置き換える必要があります。
次は、Toto 属性をテストするコードの例です。
/**
* Toto 属性のテスト
*/
public void testTotoAttribute() throws Exception {
System.out.println("testTotoAttribute");
// JMX MBean 属性を取得します。
Boolean val = (Boolean) getAttribute("Toto");
// デフォルトの fail 呼び出しと置き換えて、下のテストコードを追加します。
fail("The test case is empty.");
}
4) MBean 操作テストにテストロジックを追加する
個々の操作 (存在する場合) で、テストケースが生成されます。テストケースには次が含まれています。
- 操作署名の作成。
- 有効な値を反映する必要がある操作パラメータの作成。いくつかデフォルト値が生成されます。
- 操作の呼び出し。
- テストロジックと置き換える必要がある fail メソッドの呼び出し。
次は、addAll(Integer, java.util.Collection) 操作のテストのコード例です。
/**
* addAll 操作のテスト
*/
public void testAddAllOperation() throws Exception {
System.out.println("testaddAllOperation");
// 操作の署名。
String[] signature = new String[] {
java.lang.Integer.TYPE.getName(),
java.util.Collection.class.getName()
};
// 操作の値を更新します。
Object[] params = new Object[] {
0,
null
};
// JMX MBean 操作を呼び出します。
Boolean val = (Boolean)invoke("addAll",params,signature);
// デフォルトの fail 呼び出しと置き換えて、下のテストコードを追加します。
fail("The test case is empty.");
}
5) JUnit テストを実行する
ほかの JUnit テスト同様、MBean テストファイルを選択して、右クリックし、「ファイルを実行」アクションを選択します。