解释
断言,在编程中指断定程序的执行结果一定和预期一样,如果不一样则报错,并且中断后面代码的执行
依赖
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><scope>test</scope>
</dependency>
或
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId>
</dependency>
使用
1)assertEquals、assertNotEquals
断定实际值与预期值一致、不一致
//assertEquals(reality,expected,errorMessage)
// 参数1:实际值 参数2:预期值 参数3:错误提示信息
@Test
void test1(){//断定实际值就是预期值,如果不是,则报错误信息并中断后面代码的执行;如果预期正确,则正常执行Assertions.assertEquals(1+2,3,"1+2居然不等于3!!!");//断定实际值不是Assertions.assertNotEquals(5,4,"5居然等于4!!!");
}
2)assertSame、assertNotSame
断定两个对象 是同一个、不是同一个
@Test
void test2(){//断定两个对象相同String s="hello";Assertions.assertSame(s,s,"两个居然不是使用的同一个对象,一定有问题!");//断定两个对象不相同Assertions.assertNotSame(new int[2],new int[3],"两个居然是同一个对象,一定有问题!!!");
}
3)assertTrue、assertFalse
断定结果为true、false
@Test
void test3(){Assertions.assertTrue(true,"居然不为true,一定有问题!");Assertions.assertFalse(false,"居然不为false,一定有问题!!!");
}
4)assertNull、assertNotNull
断定结果为空、结果不为空
@Test
void test4(){Assertions.assertNull(null,"这个对象居然不为null,一定有问题!");Assertions.assertNotNull("hello","这个对象居然为null,一定有问题!");
}
5)assertArrayEquals
断定两个数组中的所有元素一定相同(包括顺序,长度)
@Test
void test_assertArrayEquals(){//断定两个数组中的所有元素一定相同(包括顺序,长度)Assertions.assertArrayEquals(new int[]{1,2},new int[]{1,2},"两个数组中的元素居然不相同,一定有问题!");
}
6)assertTimeout
断定某个方法的执行时间一定不超过我的预期时间
//assertTimeout(超时时间,执行函数,错误提示信息)
@Test
void test_assertTimeout(){Assertions.assertTimeout(Duration.of(200, ChronoUnit.MILLIS), //设置超时时间为200ms()->{System.out.println("正在送外卖中...");}, //执行函数"送外卖居然超时了,一定有问题!" //错误提示信息);
}
7)fail
断言走到这里,程序一定执行失败了
@Test
void test_fail(){String destination="京城";if (destination.equals("悬崖")){//如果到达了悬崖,则失败Assertions.fail("失败");}
}