编写 JMX MBean JUnit 测试
JMX JUnit 测试是完整的 JUnit 测试,它可以处理 JMX MBean 部署任务,以使开发者将工作重点放在测试 MBean 属性和操作上。
您必须执行以下五个步骤来实现 MBean 单元测试:
1) 生成 MBean JUnit 测试
可以使用以下方法生成 JMX JUnit 测试:
- JMX MBean 向导。在创建 MBean 的过程中,可以生成 JUnit 测试用例。通过使用该向导,可以为任何类型的 MBean(主要是标准或动态 MBean)生成测试用例。如果要为新的 MBean 生成 JUnit 测试,则应该使用此向导。
- JMX MBean JUnit 测试向导。通过使用该向导,可以为现有 MBean 生成 JMX JUnit 测试。它最适用于为标准 MBean 生成测试。在为动态 MBean 生成测试时,它只处理 MBean 部署任务。您必须为要测试的每个属性/操作手动添加测试用例。如果此 MBean 类的 JUnit 测试已存在(在测试区域中搜索 <mbean 包>.<MBean 类名>Test 文件名),则无法生成任何测试。
- 可以通过“管理”菜单访问“创建 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() {
//TODO update MYClass(Object o) constructor parameters with valid values.
return new MYClass(null);
}
3) 将测试逻辑添加到 MBean 属性测试中
对于每个属性(如果有),都将生成测试用例。测试用例包含用于获取该属性的调用。
在获取该属性后,将生成对 fail 的调用。必须将对 fail 方法的调用替换为测试逻辑。
以下代码示例用于测试 Toto 属性。
/**
* Test of Toto Attribute
*/
public void testTotoAttribute() throws Exception {
System.out.println("testTotoAttribute");
// Get JMX MBean Attribute.
Boolean val = (Boolean) getAttribute("Toto");
// TODO add your test code below by replacing the default call to fail.
fail("The test case is empty.");
}
4) 将测试逻辑添加到 MBean 操作测试中
对于每个操作(如果存在),都将生成测试用例。测试用例包含:
- 创建操作签名。
- 创建操作参数,必须使用有效值更新这些参数。同时将生成一些缺省值。
- 调用操作。
- 调用 fail 方法,必须用测试逻辑替换该方法。
以下是 addAll(Integer, java.util.Collection) 操作的测试代码示例:
/**
* Test of addAll Operation
*/
public void testAddAllOperation() throws Exception {
System.out.println("testaddAllOperation");
// Operation signature.
String[] signature = new String[] {
java.lang.Integer.TYPE.getName(),
java.util.Collection.class.getName()
};
// TODO update with your operation values.
Object[] params = new Object[] {
0,
null
};
// Invoke JMX MBean Operation.
Boolean val = (Boolean)invoke("addAll",params,signature);
// TODO add your test code below by replacing the default call to fail.
fail("The test case is empty.");
}
5) 运行 JUnit 测试
就像任何其他 JUnit 测试一样,选择 MBean 测试文件,单击鼠标右键,然后选择“运行文件”操作。