我试图在NetBeans中使用JUnit测试void方法,我的方法是更改double变量的值,然后将新变量的值打印到TextField中,这是我的方法:< / p>
private void calcul(){
if(operateur.equals("+")){
chiffre1 = chiffre1 + Double.valueOf(ecran.getText()).doubleValue();
ecran.setText(String.valueOf(chiffre1));
}
if(operateur.equals("-")){
chiffre1 = chiffre1 - Double.valueOf(ecran.getText()).doubleValue();
ecran.setText(String.valueOf(chiffre1));
}
if(operateur.equals("*")){
chiffre1 = chiffre1 * Double.valueOf(ecran.getText()).doubleValue();
ecran.setText(String.valueOf(chiffre1));
}
if(operateur.equals("/")){
try{
chiffre1 = chiffre1 / Double.valueOf(ecran.getText()).doubleValue();
ecran.setText(String.valueOf(chiffre1));
} catch(DivisionSurZeroException e) {
ecran.setText("0");
}
}
}
我用Google搜索了如何测试void方法,但我能找到的只是改变集合大小的void方法。
那么请你先给我一些想法吗?我真的不知道该怎么做。
答案 0 :(得分:4)
您必须创建测试类的新实体,然后调用测试函数。后来声称值已根据需要改变了。
TestedClass tested = new TestedClass();
tested.calcul();
assertEquals("val", tested.getVal());
但是,在您的示例中,方法是私有的。要测试它,您可以尝试使用PowerMock。
答案 1 :(得分:1)
您可以将方法拆分为几个较小的方法 - 每个操作符一个 - 并独立测试。
测试void
方法与使用返回值的测试方法没有太大区别:
在你的情况下:
yourClass.setOperateur("+");
yourClass.setChiffre1(5);
yourClass.setEcran("7");
yourClass.calcul();
assertEquals("12", yourClass.getEcran());