Eclipse中使用JUnit进行单元测试

使用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的单元测试。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KwCoding

谢了老板您讷~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值