Junit 相关的 注解

本文介绍了Spring Boot中测试相关的内容,包括@Test注解在JUnit5中的使用,@Transactional事务管理,以及测试生命周期方法@BeforeAll、@BeforeEach、@AfterEach、@AfterAll。还展示了如何使用@Disabled禁用测试方法,@Timeout限制测试执行时间,以及各种断言方法如assertEquals、assertArrayEquals和assertAll。此外,还提到了快速失败断言@fail以及异常断言assertThrows。

@Transactional

给方法添加事务,虽然返回值是true,但是数据库中并不减少数据

    @Test
    @Transactional
    public void testusers()
    {
        System.out.println(userServiceimpl.removeById(1));
    }

@displayname

@DisplayName("测试类1")
public class test {
    @Autowired
    public UserServiceimpl userServiceimpl;
    @Test
    @Transactional
    @DisplayName("测试类1的测试方法1")
    public void testusers()
    {
        System.out.println(userServiceimpl.removeById(2));
    }
}

 点击类上的运行,可以运行这个类的所有测试方法

 @beforeall  @afterall 在所有测试方法执行前或者后执行一次

@beforeeeach @aftereach  在每个测试方法执行前或者执行后执行

 @BeforeAll
    public static void beforeall()
    {
        System.out.println("在所有的测试方法前执行");
    }
    @AfterAll
    public static void afterall()
    {
        System.out.println("在所有的测试方法后执行");
    }
    @BeforeEach
    public  void beforeeach()
    {
        System.out.println("在每个测试方法前执行-----");
    }
    @AfterEach
    public  void aftereach()
    {
        System.out.println("在每个测试方法后执行+++++");
    }

 @Disabled  在执行测试类的测试时,禁止执行该方法

 @Test
    @Disabled
    @DisplayName("测试类1的测试方法1")
    public void test1()
    {
        System.out.println("测试方法一");
    }

@Timeout等待多长时间,如果到达时间,还没执行完,就抛出异常

 @Test
    @DisplayName("测试类1的测试方法1")
    @Timeout(value = 500,unit = TimeUnit.MILLISECONDS)
    public void test1() throws Exception
    {
        Thread.sleep(5000);//设置说5000毫秒,让程序超时
        System.out.println("测试方法一");
    }

断言,判断结果和预期是否一致,不一致就报错,一致就没事

//    前面的断言失败,后面的代码都不会执行
    @DisplayName("简单断言测试")
    @Test
    public void test()
    {
//       第一个是希望的,第二个是实际的,第三个是显示的提示
      assertEquals(5,4,"业务逻辑");

      Object o1=new Object();
      Object o2=new Object();
//      判断两个对象是不是相等,第三个还是显示的提示
      assertSame(o1,o2);
    }

判断数组是否一致

 @Test
    @DisplayName("断言测试数组")
    void array()
    {
        assertArrayEquals(new int[]{1,2},new int[]{1,3});
    }

会告诉哪个地方不对,应该是什么 

 组合断言  只有全部通过才算通过

    @Test
    @DisplayName("组合断言")
    public void all(){
        assertAll("组合断言",()-> assertTrue(true),()->assertEquals(1,2));
    }

异常断言  当代码没有抛出异常时报错,当抛出了异常不报错

 @DisplayName("异常断言")
    @Test
    public void testexception()
    {
        assertThrows(ArithmeticException.class,()->{int i=10/2;},"message代码没有抛出异常!!!");
    }

 快速停止 如果满足条件,就停止调试,它后面的代码都不执行了

    @DisplayName("快速失败")
    @Test
    public void testfail()
    {
        if(1==1)
        {
            fail("测试失败");
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值