junit mock 方法(junit mockmvc)

junit mock 方法(junit mockmvc)常见注解 单元测试是编写测试代码 用以检测特定的 明确的 细颗粒的功能 严格来说 单元测试只针对功能点进行测试 不包括对业务流程正确性的测试 java 的单元测试框架有 junit mockMvc 等 java 的 mock 框架一般有 Mockito EasyMock powerMock 等 框架用来提供 mock 的工具 用于 mock 的打桩和断言 springMVC 的测试中

大家好,我是讯享网,很高兴认识大家。



常见注解:

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

  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)进行选择,一般是根据不同类型选择不同执行器,可以提高效率也可以应用于某种特殊场景。

小讯
上一篇 2025-06-12 18:57
下一篇 2025-05-24 07:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/167940.html