JUnit单元测试

本文介绍了如何在Java项目中添加JUnit4包,创建测试类和测试用例,以及JUnit测试用例的生命周期。详细讲解了如何编写测试方法,包括方法级初始化、资源清理、断言方法的使用,例如assertEquals,以及对assertTrue、fail等JUnit Assert方法的总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添加Junit4包:项目右键--》properties--》libaries--》add libaries(Junit4)

使Java类生成相应的测试类:类右键--》new--》Junit Test Case--》选中需要选择的选项(方法级初始化资源/销毁资源,类级初始化资源/销毁资源)setUp/tearDown/setUpBeforeClass--》finish

运行测试类:类右键--》run as junitTest

JUnit测试用例完整的生命周期包括5个:类级初始化资源处理(@BeforeClass)-->方法级初始化资源处理(@Before)-->执行测试用例中的方法(@Test)-->方法级销毁资源处理(@After)-->类级销毁资源处理(@AfterClass)
其中类级初始化/资源销毁在每个测试类中只执行一次,方法级初始化/资源销毁;
方法级初始化/资源销毁在每个测试方法前后都会运行一次,以防止测试方法之间的结果相互影响。如果一个测试用例中有多个初始化方法,运行时先执行最后面的初始化方法,再依次往前执行;对于多个销毁方法,按照方法的顺序依次往后执行。


@BeforeClass/@AfterClass
@Before/@After
一个类中只可以出现一次
一个类中可以出现多次
每个类中只运行一次
在每个测试方法之前或者之后都会运行一次
必须声明为public static,返回值为void,且不能有参数
必须声明为public 且非static,返回值为void,且不能有参数
标识为@AfterClass的方法一定会执行,即时@BeforeClass方法异常
标识为@After的方法一定会执行,即时@Before/@Test方法异常


一般情况下,如果我们需要测试某个类的方法,应该在测试类中先实例化需要测试的类,然后在对应的测试方法中使用实例化的对象调用需要测试的方法。如:
public class Calculator {
    int result;
    public Calculator(int result){
         this.result =result;
    }
    public void add(int a){
          result =result +a;
    }
    public int sub(int a){
         return result -a;
    }
}

public class CalculatorTest {
    private static Calculator c=new Calculator(0);
    @Before
    //方法级初始化,在每个测试方法执行之前都会执行一次
    public void setUp() throws Exception {
         c.result=0;
    }
    @Test
    public void testCalculator() {
         assertEquals(0, c.result);
    }
    @Test
    public void testAdd() {
         c.add(2);
         c.add(3);
         assertEquals(5,c.result);
    }
    @Test
    public void testSub() {
         int a=c.sub(2);
         assertEquals(-2, a);
    }
}

编写测试方法:
要在方法前标注@Test,表明该方法是测试方法,对于方法内部的实现则根据该方法要测试的内容,比如:
@Test
    public void testAdd() {
         c.add(2);
         c.add(3);
         assertEquals(5,c.result);
    }
该方法是用于测试add()方法,则在方法内部调用add()方法。
assertEquals(5,c.resultt)用来判断期待结果与实际结果是否相等,第一个参数填写期待结果,第二个参数填写实际结果,也就是通过计算得到的结果。写好之后,JUnit自动测试并把结果反馈。

JUnit Assert方法总结
junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类。
1.assertTrue/False([String message,]boolean condition);
    判断一个条件是true还是false。感觉这个最好用了,不用记下来那么多的方法名。
2.fail([String message,]);
    失败,可以有消息,也可以没有消息。
3.assertEquals([String message,]Object expected,Object actual);
    判断是否相等,可以指定输出错误信息。
    第一个参数是期望值,第二个参数是实际的值。
    这个方法对各个变量有多种实现。在JDK1.5中基本一样。
    但是需要主意的是float和double最后面多一个delta的值,可能是误差范围,不确定这个单词什么意思,汗一个。
4.assertNotNull/Null([String message,]Object obj);
    判读一个对象是否非空(非空)。
5.assertSame/NotSame([String message,]Object expected,Object actual);
    判断两个对象是否指向同一个对象。看内存地址。
7.failNotSame/failNotEquals(String message, Object expected, Object actual)
    当不指向同一个内存地址或者不相等的时候,输出错误信息。
    注意信息是必须的,而且这个输出是格式化过的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值