当前位置:网站首页 > C++编程 > 正文

junit mock 方法(junit mockmvc)



常见注解:

单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能。严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试。

  1. 保证代码的正确性,记录问题的所在和缺陷以及正确的状态
  2. 便于后期重构和改进

逻辑单元测试

测试单独的方法。

集成单元测试

在真实环境下测试不同组件之间的相互作用,比如访问数据库的代码是否调用了数据库。

功能单元测试

  1. 接口能被正常调用
  2. 输出数据有效。

保证数据结构的正确性。

  1. 变量是否有初始值 或 在某场景下是否有默认值
  2. 变量是否溢出
  1. 变量无赋值(null)
  2. 主要边界:最大值,最小值,无穷大
  3. 溢出边界:在边界外面取值+/-1
  4. 临近边界:在边界值之内取值+/-1
  5. 字符串的边界,引用 "变量字符"的边界
  6. 字符串的设置,空字符串
  7. 字符串的应用长度测试
  8. 空白集合
  9. 目标集合的类型和应用边界
  10. 集合的次序

代码覆盖率。

  1. 语句覆盖率:每个语句都执行到了
  2. 判定覆盖率:每个分支都执行到了
  3. 条件覆盖率:每个条件都返回布尔
  4. 路径覆盖率:每个路径都覆盖到了

是否包闭当前异常或者对异常形成消化,是否影响结果。

在IDEA中通过快捷键ctrl+shift+t可以快速创建测试类和方法

如果编码器无法识别测试文件路径,如IDEA中java文件夹是蓝色,test文件夹是绿色,class文件是蓝色图标。那么需要去Project Structure设置Tests路径。

  1. 测试类的package路径要与待测试类路径一致,类名在原类名的后面添加Test。
  2. 类内方法命名:test+原方法名(首字母大写)
  1. @Before和@After意义:
    在程序中,经常会出现,当测试完一个方法后,其参数已经被系统保持或持久化下来。为了防止影响其它单元测试,对于此类场景,我们的测试代码必须具备初始化(@Before)和收尾(@After)的能力。
    同理@AfterClass和BeforeClass即是为了满足测试中,那些体积非常大,但只要一次初始化的代码块!




对于部分void方法,不需要使用断言。

常用的Hamcrest匹配器:

java单元测试报告 java单元测试 mock_开发语言

业务代码指:如service层等需要用到Spring容器的方法。

按照需求的预期效果,跑完整个业务流程,包括以前开发的流程。

  1. 是否实现了预期
  2. 是否影响到了以前的流程
  3. 全流程是否顺利
  4. 数据是否符合预期

类前面注解,添加Spring容器:

如果不指定单元测试的容器是不能执行测试的,对于一些数据库、feign的访问,需要添加Application.class作为容器进行单元测试:

要点

  1. 测试类必须由Parameterized测试运行器修饰
  2. 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求:
    1)该方法必须由Parameters注解修饰
    2)该方法必须为public static的
    3)该方法必须返回Collection类型
    4)该方法的名字不做要求
    5)该方法没有参数













  3. 整个测试类运行。

demo

普通的工具类:Utils不涉及Spring容器,类不需要任何注解,只需要在对应的方法注解一个@Test即可。

单元测试中,每个类都是由于JUNIT4框架中的Runner运行器来执行的。一般情况下,在没有指定运行器的时候,是由系统默认选择(TestClassRunner)的运行器执行。包括类中的所有方法都是由该运行器负责调用和执行。当我们需要指定的时候,则通过类级别注解 @Run Wirth(xxxxxx)进行选择,一般是根据不同类型选择不同执行器,可以提高效率也可以应用于某种特殊场景。

到此这篇junit mock 方法(junit mockmvc)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • cp15(cp1500上市时间)2025-09-07 21:45:05
  • sigmod会议审稿时间(sigcomm会议2019论文集)2025-09-07 21:45:05
  • c++ 条件变量(c++ 条件变量 唤醒要加锁)2025-09-07 21:45:05
  • vs创建c++项目步骤(vs c++ 6.0 创建c程序)2025-09-07 21:45:05
  • 如何解决tomcat乱码(tomcat解决乱码问题)2025-09-07 21:45:05
  • 编程入门先学什么scratch(孩子编程入门先学什么)2025-09-07 21:45:05
  • sigmod会议日期(sigcomm会议)2025-09-07 21:45:05
  • msvcp140.dll丢失的解决方法(msvcp140.dll丢失的解决方法win7旗舰版)2025-09-07 21:45:05
  • cpe1500(Cpe1500 表面活性剂)2025-09-07 21:45:05
  • cnn是什么意思英语(英文cnn什么意思)2025-09-07 21:45:05
  • 全屏图片