欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Assert断言的使用

程序员文章站 2022-03-15 13:29:18
...

欢迎关注我的微信公众号:松鼠小码农

今天在看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
最后附上常用的几个测试方法
Assert断言的使用

相关标签: Java java