[英]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.