Junit
一、Junit概述
- 测试的分类:
- 黑盒测试:封装代码,只显示输入和输出。通过比较实际的输出和预想的输出从而得到软件或者程序是否正确
- 白盒测试:不封装代码,看过程和流程,思考代码是否高效,一般写代码。Junit测试属于白盒测试的一种。
二、 Junit的使用步骤
- 定义一个测试类(测试用例)
- 测试类名: 类名Test
- 包名:xxx.xxx.xx.test 将测试类单独放在一个包之下
- 定义一个测试方法(可以独立运行)
- 方法名:test方法名
- 返回值:void
- 参数列表:空参
- 给方法加上注解@Test
- 【注意】:使用Junit单元测试的时候,看的是颜色
- 红色代表出错
- 绿色代表正常
- 一般我们使用断言来进行结果的处理
- Assert.assertEquals(期待值, 真实值);
package com.zhang.test; import com.zhang.junit.Calculator; import org.junit.Assert; import org.junit.Test; public class CalculatorTest { // 测试add方法 @Test public void testAdd(){ // 创建对象 Calculator calculator = new Calculator(); // 测试方法 int result = calculator.add(1 , 2); // System.out.println(result); /**因为输出不能0检测出代码的错误(想要的因为代码逻辑无法实现) * 所以我们用断言Assert和真实的结果进行比对*/ Assert.assertEquals(3 , result); // 断言成功 // Assert.assertEquals(4,result); // 断言失败 } // 测试sub方法 @Test public void testSub(){ Calculator calculator = new Calculator(); int result = calculator.sub(2 , 1); System.out.println(result); } }
三、Junit的其他注解
- @Before
- 在所有测试方法被执行之前执行,一般用来申请资源
- 所有的测试方法都会执行
- @After
- 在所有测试方法被执行之后执行,一般用来释放资源
- 所有的测试方法都会执行
- 即使出现了异常,也不会影响该方法的执行
package com.zhang.test; import com.zhang.junit.Calculator; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class CalculatorTest { // 在测试方法被执行之前自动执行,一般用来申请资源 @Before public void init(){ System.out.println("init..."); } // 在所有测试方法被执行完成之后都会执行该方法,一般用来释放资源 // 即使出现了异常,也会执行该方法 @After public void close(){ System.out.println("close"); } // 测试add方法 @Test public void testAdd(){ // 创建对象 Calculator calculator = new Calculator(); // 测试方法 int result = calculator.add(1 , 2); // System.out.println(result); /**因为输出不能0检测出代码的错误(想要的因为代码逻辑无法实现) * 所以我们用断言Assert和真实的结果进行比对*/ Assert.assertEquals(3 , result); // 断言成功 // Assert.assertEquals(4,result); // 断言失败 } // 测试sub方法 @Test public void testSub(){ Calculator calculator = new Calculator(); int result = calculator.sub(2 , 1); System.out.println(result); } }