繁体   English   中英

用junit4进行单元测试

[英]unit testing with junit4

我如何在junit4中创建测试套件?

这是一个例子:

@RunWith(Suite.class)
@Suite.SuiteClasses(
        {
            TestClass1.class,
            TestClass2.class,
        })
public class DummyTestSuite
{

}

单元测试确实很容易,最好在一个简单的示例中进行解释。

我们将使用以下类来计算数组的平均值:

package com.stackoverflow.junit;

public class Average {
    public static double avg(double[] avg) {
        double sum = 0;

        // sum all values
        for(double num : avg) {
            sum += num;
        }


        return sum / avg.length;
    }
}

现在,我们的JUnit测试将测试此方法的一些基本操作:

package com.stackoverflow.junit;

import junit.framework.TestCase;

public class AverageTest extends TestCase {
    public void testOneValueAverage() {
        // we expect the average of one element (with value 5) to be 5, the 0.01 is a delta because of imprecise floating-point operations
        double avg1 = Average.avg(new double[]{5});
        assertEquals(5, avg1, 0.01);

        double avg2 = Average.avg(new double[]{3});
        assertEquals(3, avg2, 0.01);        
    }

    public void testTwoValueAverage() {
        double avg1 = Average.avg(new double[]{5, 3});
        assertEquals(4, avg1, 0.01);

        double avg2 = Average.avg(new double[]{7, 2});
        assertEquals(4.5, avg2, 0.01);      
    }

    public void testZeroValueAverage() {
        double avg = Average.avg(new double[]{});
        assertEquals(0, avg, 0.01);
    }
}

前两个测试用例将表明我们正确地实现了该方法,但是最后一个测试用例将失败。 但为什么? 数组的长度为零,我们正以零潜水。 除以零的浮点数不是数字(NaN),不是零。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM