您的位置:首页 > 编程语言 > Java开发

Eclipse中使用JUnit进行单元测试

2016-07-20 11:49 549 查看
使用JUnit可以方便地对类的方法进行测试,通过比较方法的返回值与期望值是否相等来判断方法是否正确。

Step1.新建Java工程,添加一个待测试的类Calculator,实现简单的加减乘除。注意,待测试的方法都应该是public。

public class Calculator {

public double add(double a, double b) {
return a + b;
}

public double sub(double a, double b) {
return a - b + 1;//假设程序错误
}

public double multi(double a, double b) {
return a * b;
}

public double div(double a, double b) {
return a / b;
}
}


Step2.在Package Explorer中对Calculator.java右击->New->JUnit Test Case,见下图设置界面。



选择Junit4

Name默认为待测类类名+Test

勾选setUp()和tearDown(),分别用于测试前的初始化和善后

待测类为右击选中的Calculator

点击Next,见如下界面,勾选需要测试的方法,点击Finish



如果工程未添加JUnit的包,那Eclipse会提示添加:



添加Junit包后可以看到Junit包的位置:



自动生成的测试类CalculatorTest.java如下:

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void testAdd() {
fail("Not yet implemented");
}

@Test
public void testSub() {
fail("Not yet implemented");
}

@Test
public void testMulti() {
fail("Not yet implemented");
}

@Test
public void testDiv() {
fail("Not yet implemented");
}
}


对测试类CalculatorTest进行完善和解释如下:

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class CalculatorTest {
private Calculator c;//声明

@Before
public void setUp() throws Exception {
// setUp()用于测试前的初始化
c = new Calculator();
}

@After
public void tearDown() throws Exception {
// tearDown()用于测试后的善后
c = null;
}

@Test
public void testAdd() {
// assertEquals()用于断言测试结果
assertEquals(2.0, c.add(1.0, 1.0), 0.0000f);
}

@Test
public void testSub() {
assertEquals(0.0, c.sub(1.0, 1.0), 0.0000f);
}

@Test
public void testMulti() {
assertEquals(1.0, c.multi(1.0, 1.0), 0.0000f);
}

@Test
public void testDiv() {
assertEquals(3.0, c.div(3.0, 1.0), 0.0000f);
}

@Test
public void test5() {
//其他方法
assertTrue(!false);
}
}


setUp()与tearDown()分别用于测试前的初始化和善后

JUnit会按顺序执行测试类中标记为@Test的每个方法,方法名不一定要与待测类对应,如上述代码中的Test5()

assertEquals(expected, actual)方法用于断言实际值与期望值是否一致。当比较double值时使用assertEquals(double expected, double actual, double delta)方法,其中delta是误差,在误差范围内认为double值相等,如上述代码所示。

Step3. Java工程Run as -> Junit Test,可以看到测试结果。



如上图所示,testSub()打叉表示错误,期望值是<0.0>,但实际值是<1.0>,所以应该检查testSub()中的c.sub(1.0, 1.0)方法正确性。

至此,完成JUnit的单元测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: