Assert断言的使用
欢迎关注我的微信公众号:松鼠小码农
今天在看Mybatis-Plus的官方文档的时候,在快速开始的测试类中,大佬用了这么一个函数:
Assert
@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleTest {
@Autowired
private UserMapper userMapper;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
以前并没有使用,所以查了一下资料
它是属于Junit内的方法
它在执行的时候,如果不满足预期,就会终止程序并打印错误日志
具体的思路可以参照最原始的c/c++中的assert原理和用法
https://www.runoob.com/w3cnote/c-assert.html
我在想为什么要它这个东西?try catch不行吗?它有怎样的优势呢?
首先是因为在程序里边,一个接口对应一个实现方法,而在接口中常常会定义相关的很多方法,所以在测试的时候,如果都在main方法里边进行测试,main方法就会显得臃肿,而且不便于以后其他人测试以及查看测试数据,用Junit Test测试的话,一个方法对应一个测试方法,简单明了,也方便别人查看测试方法以及测试数据。
如果你的类里有多个方法,用main方法测试的话就很不方便,想测试全部方法的话就得把测试代码全部写到main里,或者你测一个重写一次。且更重要的是,这样会使测试代码与运行逻辑代码混在一起,不规范。
Junit神奇的作用主要还是在java的开发框架中能够很完美的展现出来:
在一个正规的java项目中(尤其是使用了框架),几乎是不会写main方法
使用使用junit就方便多了,这是单元测试,你想测哪个方法就写一个对应的测试方法,然后用junit运行。每个方法之间是独立的,非常灵活。而且测试方法一般不会直接写在原类中,而是单独的测试类,这样测试代码就完全与逻辑代码分开了。
如果使用了maven之类的工具来管理项目,则junit的好处又会进一步体现出来:你可以编写好一大批测试类,然后用maven的一个简单命令来自动执行,想想看,全部自动测试,且测试结果自动生成文档,方便吧。
Junit本来想自己整理的,但是看网上写的很好的文章很多
这篇写的很好分享出来吧。
https://wiki.jikexueyuan.com/project/junit/overview.html
最后附上常用的几个测试方法