Mock测试用例_测试用例库

Mock测试用例_测试用例库近期在重构一些旧项目,看到之前同事编写的测试用例是使用注入SpringJUnit4ClassRunner直接注册实现层然后测试需要操作的方法是否可运行。虽然这样说是可以达到测试的想法。但是如果要使用

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

近期在重构一些旧项目,看到之前同事编写的测试用例是使用注入SpringJUnit4ClassRunner 直接注册实现层然后测试需要操作的方法是否可运行。虽然这样说是可以达到测试的想法。但是如果要使用在入口的业务控制层,还要有预期的测试结果,那岂不是要写一大堆逻辑来验证了。。因此使用该方案是很笨重的,测试起来也麻烦。然而bug率还是没降低多少。。

Mock测试用例_测试用例库

因此引入mock来进行改造该测试用例,以业务控制层为切入点,断言预判是否符合结果。这样就达到测试的效果了。

import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import java.util.Map;

import static junit.framework.TestCase.assertNotNull;
import static org.assertj.core.api.Assertions.assertThat;

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
@Slf4j
public class ApplicationTests {


    @Autowired
    protected MockMvc mvc;

    @Before
    public void init() {
        assertNotNull(mvc);
    }

    @Test
    public void signParamsMock() {
        Map params = Maps.newHashMap();
        params.put("catalogId", "1");
        params.put("user", "user");

        try {
//业务控制层,URI请求 MvcResult result
= mvc.perform(MockMvcRequestBuilders.post("/colorfulPay/signParams", params)).andReturn();
//断言预判结果是否返回包含true,若不符合,就抛出异常 assertThat(result.getResponse().getContentAsString()).contains(
"true"); log.info("result:{}", result.getResponse().getContentAsString()); } catch (Exception e) { e.printStackTrace(); } } }

 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166673.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月1日 下午2:16
下一篇 2022年8月1日 下午2:16


相关推荐

  • windows 系统中,使用pycharm激活conda虚拟环境报错

    windows 系统中,使用pycharm激活conda虚拟环境报错Windows 系统使用 pycharm 无法激活已经创建的 conda 虚拟环境 报错如下 解决方案 2 右键以管理员身份运行 输入指令进行策略更改 输入 Y 3 在 pycharm 中重启 Terminal 即可正常激活虚拟环境

    2026年3月27日
    1
  • android面试题2022

    android面试题2022面试题除了你不会的其余都会,除了你知道的其余都知道,除了你答不上来的答上来了。不积跬步无以至千里,多思考多学习,祝你早日成为大佬。一、mt1.内存优化常用手段2.leacknanry的原理3.腾讯bugly原理4.自己实现一个日志收集的思路,如何收集crash信息5.handler原理及源码6.常见的内存泄漏的方式7.bitmap是在什么内存里1android2.2(APIlevel8)和更早的版本,垃圾回收时,会阻塞UI线程,造成卡顿。而2.3(APIle

    2022年5月21日
    45
  • cacheable 表达式_springboot @Cacheable 基本使用

    cacheable 表达式_springboot @Cacheable 基本使用加入依赖 org springframew bootspring boot starter cache 开启注解缓存 在启动类上加入 EnableCachin 缓存注解 Cacheable 对方法结果进行缓存 主要用于 GET 方法 cacheNames value 指定缓存主键 Cache 的名字 key 缓存数据使用 key 支持 spEl 语法 keyGenerator key 的生成器 与 key 属

    2026年3月16日
    2
  • Linux学习–>如何通过Shell脚本实现发送邮件通知功能?

    Linux学习–>如何通过Shell脚本实现发送邮件通知功能?1、安装和配置sendmail不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件。不过mail命令是依赖sendmail的,所以我们需要先检查安装和配置sendmail。一般系统都自带sendmail,但是只能给内网的邮箱发邮件。如果想给公网的邮箱发邮件(比如qq邮箱)就需要配置sendmail.这里记录sendmail的安装启动配置…

    2022年10月20日
    5
  • 一致性哈希算法详解

    一致性哈希算法详解1、使用哈希算法有什么问题?假设有一个由A、B、C三个节点组成的KV服务,每个节点存放不同的KV数据。通过哈希算法,每个key都可以寻址到对应的服务器,比如,查询key是key-01,计算公式为hash(key-01)%3,经过计算寻址到了编号为1的服务器节点A但如果服务器数量发生变化,基于新的服务器数量来执行哈希算法的时候,就会出现路由寻址失败的情况,Proxy无法找到之前寻址到的那个服务器节点假如3个节点不能满足业务需求了,这时增加了一个节点,节点的数量从3变化为4,那么之前的hash(key

    2022年7月27日
    9
  • n76e003浮点_N76E003之IO控制

    n76e003浮点_N76E003之IO控制N76E003 最多支持 26 个可位寻址的通用 I O 引脚 分成 4 组 P0 到 P3 每一个端口有它的端口控制寄存器 Px 端口控制寄存器的写和读有不同的意思 写端口控制寄存器设置输出锁存逻辑值 读端口引脚的逻辑状态 所有 I O 引脚 除 P2 0 可以被软件独立配置成四种 I O 模式中的一种 这四种模式是准双向模式 标准 8051 端口结构 推挽输出 输入和开漏模式 每一个端口通过两个特殊功能寄存器 PxM

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号