常见注解:
单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能。严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试。
- 保证代码的正确性,记录问题的所在和缺陷以及正确的状态
- 便于后期重构和改进
逻辑单元测试
测试单独的方法。
集成单元测试
在真实环境下测试不同组件之间的相互作用,比如访问数据库的代码是否调用了数据库。
功能单元测试
- 接口能被正常调用
- 输出数据有效。
保证数据结构的正确性。
- 变量是否有初始值 或 在某场景下是否有默认值
- 变量是否溢出
- 变量无赋值(null)
- 主要边界:最大值,最小值,无穷大
- 溢出边界:在边界外面取值+/-1
- 临近边界:在边界值之内取值+/-1
- 字符串的边界,引用 "变量字符"的边界
- 字符串的设置,空字符串
- 字符串的应用长度测试
- 空白集合
- 目标集合的类型和应用边界
- 集合的次序
代码覆盖率。
- 语句覆盖率:每个语句都执行到了
- 判定覆盖率:每个分支都执行到了
- 条件覆盖率:每个条件都返回布尔
- 路径覆盖率:每个路径都覆盖到了
是否包闭当前异常或者对异常形成消化,是否影响结果。
在IDEA中通过快捷键ctrl+shift+t可以快速创建测试类和方法
如果编码器无法识别测试文件路径,如IDEA中java文件夹是蓝色,test文件夹是绿色,class文件是蓝色图标。那么需要去Project Structure设置Tests路径。
- 测试类的package路径要与待测试类路径一致,类名在原类名的后面添加Test。
- 类内方法命名:test+原方法名(首字母大写)
- @Before和@After意义:
在程序中,经常会出现,当测试完一个方法后,其参数已经被系统保持或持久化下来。为了防止影响其它单元测试,对于此类场景,我们的测试代码必须具备初始化(@Before)和收尾(@After)的能力。
同理@AfterClass和BeforeClass即是为了满足测试中,那些体积非常大,但只要一次初始化的代码块!
对于部分void方法,不需要使用断言。
常用的Hamcrest匹配器:
业务代码指:如service层等需要用到Spring容器的方法。
按照需求的预期效果,跑完整个业务流程,包括以前开发的流程。
- 是否实现了预期
- 是否影响到了以前的流程
- 全流程是否顺利
- 数据是否符合预期
类前面注解,添加Spring容器:
如果不指定单元测试的容器是不能执行测试的,对于一些数据库、feign的访问,需要添加Application.class作为容器进行单元测试:
要点
- 测试类必须由Parameterized测试运行器修饰
- 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求:
1)该方法必须由Parameters注解修饰
2)该方法必须为public static的
3)该方法必须返回Collection类型
4)该方法的名字不做要求
5)该方法没有参数 - 整个测试类运行。
demo
普通的工具类:Utils不涉及Spring容器,类不需要任何注解,只需要在对应的方法注解一个@Test即可。
单元测试中,每个类都是由于JUNIT4框架中的Runner运行器来执行的。一般情况下,在没有指定运行器的时候,是由系统默认选择(TestClassRunner)的运行器执行。包括类中的所有方法都是由该运行器负责调用和执行。当我们需要指定的时候,则通过类级别注解 @Run Wirth(xxxxxx)进行选择,一般是根据不同类型选择不同执行器,可以提高效率也可以应用于某种特殊场景。
到此这篇junit mock 方法(junit mockmvc)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/35597.html