为新的操作人员创建JUnit测试
你好,
我有以下简单的TestOperator和MyIOObject。
我正在尝试为这个操作符做JUnit测试。
TestOperator
1)有什么简单的方法如何创建我的操作符对象(TestOperator)?要使用构造函数,我缺少OperatorDescription和它的构造函数似乎相当复杂(需要额外的类)。
2)如何将IO对象(IO)设置为输入端口:ce.getInputPorts().getPortByIndex(0)
非常感谢你的建议。
radone
我有以下简单的TestOperator和MyIOObject。
我正在尝试为这个操作符做JUnit测试。
TestOperator
TestOperator扩展Operator {IO对象
//输入端口
protected InputPort inParam = getInputPorts().createPort("MyIOObject");
//输出端口
protected OutputPort outParam = getOutputPorts().createPort("MyIOObject");
public TestOperator(OperatorDescription description) {
超级(描述);
}
doWork()抛出operatoreexception {
//读取输入
MyIOObject ioObj = inParam.getData();
//增加值
ioObj。setValue(ioObj.getValue() + 1);
//输出
outParam.deliver (ioObj);
}
}
公共类MyIOObject扩展ResultObjectAdapter {我对JUnit测试的想法如下:
私有int值= -1;
setValue(int值){
这一点。价值=价值;
}
公共int getValue() {
返回this.value;
}
}
公共类CirclePixelsExtractorTest扩展TestCase {请问,谁能帮我一下
@Test
testMeanValue()抛出operatoreexception {
//创建操作符
// ??????????????????????????????????????????????????????
// ????????????????????????1 ???????????????????????????
// ??????????????????????????????????????????????????????
OperatorDescription od = null;// (1) ?如何获取一个操作符描述?
TestOperator ce = new TestOperator (od);
//创建IO输入数据
MyIOObject io = new MyIOObject();
io.setValue (5);
//提供IO数据作为输入
// ??????????????????????????????????????????????????????
// ????????????????????????2 ???????????????????????????
// ??????????????????????????????????????????????????????
ce.getInputPorts () .getPortByIndex(0)。//如何设置数据??
//执行操作符
ce.doWork ();
//读取输出
MyIOObject io2 = ce.getOutputPorts().getPortByIndex(0).getData();
int res = io2.getValue();
/ /验证
assertequal (res);
}
}
1)有什么简单的方法如何创建我的操作符对象(TestOperator)?要使用构造函数,我缺少OperatorDescription和它的构造函数似乎相当复杂(需要额外的类)。
2)如何将IO对象(IO)设置为输入端口:ce.getInputPorts().getPortByIndex(0)
非常感谢你的建议。
radone
标记:
0
答案
对于任何遇到同样问题的人:
答案(1)
OperatorDescription可以通过以下方法创建: 操作符的创建可以通过以下方式完成: 回答2)
你不需要OperatorDescription。如果调用了RapidMiner.init(),则可以使用
OperatorService.createOperator (YourOpClass.class)。
最好的
西蒙
你好,我正在为我的操作符编写Junit测试用例。下面是我的操作符代码。你能帮我写一下它的测试用例吗
嗨@vc126m,
是否可以共享这个扩展的java项目文件或.jar文件来测试它,并在这里提供反馈或帮助?
欢呼,
嗨@vc126m,
当您想为自己的操作符编写JUnitTests时,必须在测试类中初始化RapidMiner本身。你可以通过调用:
然后可以使用前面提到的OperatorService创建操作符的实例。
通过这个实例,您可以实现您能想到的任何JUnit测试。如果你不太熟悉JUnit测试,你可以在网上找到大量的教程(例如我正在使用的教程)这).
你还可以安装工艺测试扩展在RapidMiner中使用。然后,您可以创建UnitTest流程(例如,您也可以将其存储在版本控制存储库中),并“运行并存储预期的结果”。之后,您可以运行'test process'来检查流程的结果是否发生了变化。
希望这能有所帮助
费边