使用JUnit测试void方法

时间:2013-04-19 11:57:37

标签: java netbeans junit

我试图在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方法。

那么请你先给我一些想法吗?我真的不知道该怎么做。

2 个答案:

答案 0 :(得分:4)

您必须创建测试类的新实体,然后调用测试函数。后来声称值已根据需要改变了。

TestedClass tested = new TestedClass();
tested.calcul();

assertEquals("val", tested.getVal());

但是,在您的示例中,方法是私有的。要测试它,您可以尝试使用PowerMock

答案 1 :(得分:1)

  1. 您可以将方法拆分为几个较小的方法 - 每个操作符一个 - 并独立测试。

  2. 测试void方法与使用返回值的测试方法没有太大区别:

    1. 设置前提条件
    2. 运行您的方法
    3. 检查后置条件
  3. 在你的情况下:

    yourClass.setOperateur("+");
    yourClass.setChiffre1(5);
    yourClass.setEcran("7");
    
    yourClass.calcul();
    
    assertEquals("12", yourClass.getEcran());