JUnit

作者: lv_shun | 来源:发表于2020-09-28 00:23 被阅读0次

单元测试是对软件开发过程中必不可少的过程。准确的完备的单元测试可以帮助开发者提高代码质量,降低bug率。

测试代码必须要做一下几件事:

  • 准备测试所需要的各种条件(创建所有需要的对象,分配必要的资源等等)
  • 调用要测试的方法
  • 验证被测试方法的行为和期望是否一致
  • 完成后清理各种资源

JUnit各种断言

  • assertEquals 是否相等

参数说明:

  1. 中断时展示的信息(可选)
  2. 期望值
  3. 实际值
    @Test
    public void test() {
        assertEquals("咋就不相等", 1,2);
    }
  • assertNull 是否为空

参数说明:

  1. 中断时展示的信息(可选)
  2. 目标
  • assertSame 对象引用是否相同

参数说明:

  1. 中断时展示的信息(可选)
  2. 期望对象
  3. 目标对象
  • assertTrue 是否为真

参数说明:

  1. 中断时展示的信息(可选)
  2. 表达式
  • fail 立即失败

参数说明:

  1. 中断时展示的信息(可选)
  • assertThat

还有个assertThat方法,可以替代所有方法。需要引入静态类:

import static org.hamcrest.Matchers.*;
...
 @Test
    public void testThat() {
        assertThat(1, is(1));
        assertThat(1, not(2));
        assertThat(null, nullValue());
        User user = new User();
        User user2 = user;

        assertThat(user, sameInstance(user2));

        assertThat(Boolean.TRUE, is(Boolean.TRUE));
    }

annotation

@Test

标记一个方法为测试方法,同时注解里支持expected设置测试过程中预期抛出的异常,如果抛出对应异常,测试通过。

    @Test(expected = Exception.class)
    public void testException() {
        assertThat(1,is(8/0));
    }

@Before @After

在每个@Test方法执行前后被调用

@BeforeClass @AfterClass

在测试类初始化前和销毁之前调用,注意使用在静态方法上,通常完成一些耗时又通用的时候使用。

package com.zhongyouex.clothes.partner;

import com.sun.org.apache.xpath.internal.operations.Bool;
import org.apache.catalina.User;
import org.junit.*;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.hamcrest.Matchers.*;

/***
 * @Title
 * @author lv
 * @Date 2020/9/26 17:01
 */
@RunWith(SpringJUnit4ClassRunner.class)
public class TestTest {

    @Test
    public void test() {
        assertEquals("咋就不相等", 1,1);
    }

    @Test
    public void testThat() {
        assertThat(1, is(1));
        assertThat(1, not(2));
        assertThat(null, nullValue());
        User user = new User();
        User user2 = user;

        assertThat(user, sameInstance(user2));

        assertThat(Boolean.TRUE, is(Boolean.TRUE));
    }

        @Test(expected = Exception.class)
        public void testException() {
            assertThat(1,is(8/0));
        }

        @Before
        public void before() {
            System.out.println("before");
        }

        @After
        public void after() {
            System.out.println("after");
        }

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

        @AfterClass
        public static void afterClass() {
            System.out.println("afterClass");
        }



    private class User {
        private String name;
        private int age;
    }
}

相关文章

网友评论

      本文标题:JUnit

      本文链接:https://www.haomeiwen.com/subject/kkzcuktx.html