JUnit用法全解析

简介

JUnit 是一个用于Java 编程语言的 单元测试 框架和 回归测试 框架。

JUnit的特点:

  • 开放的资源框架
  • 提供注释来识别测试方法
  • 提供断言来测试预期结果
  • 提供测试运行来运行测试。
  • 运行速度快,优雅简洁
  • 可以自动运行并且检查自身结果并提供即时反馈

使用

断言

断言是JUnit中主要的功能,在JUnit中所有的断言都包含在 Assert 类中。

Assert类中主要方法如下:

方法名 方法描述
assertEquals 断言传入的预期值与实际值是相等的
assertNotEquals 断言传入的预期值与实际值是不相等的
assertArrayEquals 断言传入的预期数组与实际数组是相等的
assertNull 断言传入的对象是为空
assertNotNull 断言传入的对象是不为空
assertTrue 断言条件为真
assertFalse 断言条件为假
assertSame 断言两个对象引用同一个对象,相当于“==”
assertNotSame 断言两个对象引用不同的对象,相当于“!=”
assertThat 断言实际值是否满足指定的条件

注意:上面的方法都为Assert的静态方法,通过Assert.xxx 调用,如果需要直接调用,需要加上 import static org.junit.Assert.*;

执行顺序

在JUnit中通过@BeforeClass@Before@Test@After@AfterClass注解来确定执行顺序。

注解 介绍
@beforeClass() 注解的方法首先执行,并且只执行一次。
@afterClass() 注解的方法最后执行,并且只执行一次。
@before() 注解的方法针对每一个测试用例执行,但是是在执行测试用例之前。
@after() 注解的方法针对每一个测试用例执行,但是是在执行测试用例之后。
@Test 在 before() 方法和 after() 方法之间,执行每一个测试用例。执行顺序根据代码位置来决定

示例如下:

   @BeforeClass
    public static void beforeClass() {
   
        System.out.println("in before class");
    }

    //execute only once, in the end
    @AfterClass
    public static void  afterClass() {
   
        System.out.println("in after class");
    }

    //execute for each test, before executing test
    @Before
    public void before() {
   
        System.out.println("in before");
    }

    //execute for each test, after executing test
    @After
    public void after() {
   
        System.out.println("in after");
    }

    //test case 1
    @Test
    public void testCase1() {
   
        System.out.println("in test case 1");
    }

    //test case 2
    @Test
    public void testCase2() {
   
        System.out.println("in test case 2");
    }

结果如图:
JUnit用法全解析_第1张图片

编写测试

下面是我们要测试的加密程序

public class Encryption {
   
    /**
     * 加密程序,算法是将字符串反转,如 abc 会转为为 cba
     * @param content
     * @return
     */
    public static String encryption(String content){
   
       if (content 

你可能感兴趣的:(junit,单元测试)