返回顶部
首页 > 资讯 > 后端开发 > Python >单元测试 @mock与@SpringBootTest的使用
  • 233
分享到

单元测试 @mock与@SpringBootTest的使用

2024-04-02 19:04:59 233人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一.单元测试工具mock使用1.引入依赖包2.mock测试类二.SpringBoot使用@springBootTest单元测试1.引入依赖包2.测试类三.mock和@spring

在写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖的类或者资源又会有依赖,导致在单元测试代码里无法完成构建,我们应对的方法是Mock。

简单的说就是模拟这些需要构建的类或者资源,提供给需要测试的对象使用。

一.单元测试工具mock使用

1.引入依赖包

2.mock测试类

二.springboot使用@SpringBootTest单元测试

1.引入依赖包

2.测试类

三.mock和@springBootTest区别

1.mock进行单元测试不依赖spring的bean定义文件

不需要启动WEB服务,执行起来速度很快。

2.@springBootTest需要启动服务

执行真正的操作,执行速度慢,当需要真正的dao层操作时可选此测试方式。

单元测试--SpringbootTest和MockMvc

SpringbootTest

基于Junit 的Test


import junit.framework.TestCase;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)    //底层用junit的 SpringJUnit4ClassRunner
@SpringBootTest(classes = {XdclassSpringbootApplication.class})
public class XdclassSpringbootApplicationTests {
    @Test
    public void testOne() {
        System.out.println("start test");
        Assert.assertEquals(1,1);
        TestCase.assertEquals(1,2);
    }
}

当然也可以使用 @Before 和 @After , 和 junit 的测试一样。

启动类是必须要有的。

当有多个 @Test 的方法,需要一起执行的时候, 执行 XdclassSpringbootApplicationTests 这个类的 run或debug。

Assert 和 TestCase 都是 断言,用法一样。

MockMvc类的使用和模拟Http请求

相关API:

  • perfORM:执行一个RequestBuilder请求
  • andExpect:添加ResultMatcher->MockMvcResultMatchers验证规则
  • andReturn:最后返回相应的MvcResult->Response

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 org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MockMvcTestDemo {
    @Autowired
    private MockMvc mockMvc;
    @Test
    public void apiTest(){
        try {
            MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/hello"))
                    .andExpect(MockMvcResultMatchers.status().isOk())            .andReturn();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 单元测试 @mock与@SpringBootTest的使用

本文链接: https://lsjlt.com/news/154474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 单元测试 @mock与@SpringBootTest的使用
    目录一.单元测试工具mock使用1.引入依赖包2.mock测试类二.springboot使用@SpringBootTest单元测试1.引入依赖包2.测试类三.mock和@spring...
    99+
    2024-04-02
  • @SpringBootTest单元测试测试类的使用
    前言 使用SpringBoot 测试类可在不需要启动程序时,即可使用。当你运行你的测试方法时他会自己启动程序调用所需使用到的mapper,service接口,实现方法。故而可在测试类中像编写正常service方法一样编写代码 一.依赖录入 ...
    99+
    2023-08-21
    单元测试 junit java
  • 解决@SpringBootTest 单元测试遇到的坑
    目录@SpringBootTest单元测试的坑1、环境2、遇到的问题3、解决方式Test类运行单元测试失效Test测试类无法执行完全问题@SpringBootTest单元测试的坑 1...
    99+
    2024-04-02
  • SpringBoot使用@SpringBootTest注解开发单元测试教程
    目录概述1.添加依赖:2. 编写启动入口类3. 编写Controller类4. 编写service类5. 编写mapper类6. 编写测试类7.测试结果:概述 @SpringBoot...
    99+
    2024-04-02
  • Go单元测试对GORM进行Mock测试
    目录前言项目准备初始化测试工作对Create进行Mock测试Get 操作的Mock测试Update 操作的Mock测试总结前言 在 Go 单元测试这个系列的第二部分 数据库...
    99+
    2024-04-02
  • SpringBootTest单元测试报错的解决方案
    目录SpringBootTest单元测试报错单元测试 @mock和@SpringBootTest使用一.单元测试工具mock使用二.springboot使用@SpringBootTe...
    99+
    2024-04-02
  • SpringBoot @SpringBootTest加速单元测试的小诀窍
    目录@SpringBootTest加速单元测试小诀窍PreclasseswebEnvironment@记录使用SpringBootTest遇到的坑@SpringBootTest加速单...
    99+
    2024-04-02
  • 基于SpringBoot Mock单元测试详解
    目录1.Mock的概念:3. 常用的 Mockito 方法Junit中的基本注解: @Test:使用该注解标注的public void方法会表示为一个测试方法; @...
    99+
    2024-04-02
  • Go单元测试对数据库CRUD进行Mock测试
    目录前言go-sqlmock安装使用示例miniredis安装使用示例总结前言 最近在实践中也总结了一些如何用表格驱动的方式使用 gock Mock测试外部接口调用。以及怎么对GOR...
    99+
    2024-04-02
  • 基于SpringBoot Mock单元测试的示例分析
    小编给大家分享一下基于SpringBoot Mock单元测试的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Junit中的基本注解:@Test:使用该注解标注的public void方法会表示为一个测试方...
    99+
    2023-06-25
  • Java怎么自动生成mock单元测试
    在Java中,我们可以使用Mockito等库来自动生成mock单元测试。 以下是一个示例: 首先,我们需要在项目的构建文件中添加M...
    99+
    2023-10-22
    java
  • Java用正确的姿势写单元测试以及mock
    1. 前言 对于一些简单的功能或业务,我们也许可以通过前端调试、postman等接口工具、main函数调用进行测试。但这每次改动代码都要人力测试,耗费大量的人力资源且不高效,真正的项目中单元测试是必不可少的。 2. 要点 单元测试的三步走:...
    99+
    2023-09-27
    单元测试 java
  • Android单元测试与模拟测试
      考虑可读性,对于方法名使用表达能力强的方法名,对于测试范式可以考虑使用一种规范, 如 RSpec-style。   不要使用逻辑流关键字(If/ese、for、do/...
    99+
    2022-06-06
    android单元测试 测试 Android
  • springboottest测试依赖和使用方式
    目录springboottest测试依赖和使用创建测试类maven无法使用spring test注解看pom.xml中是否已经引入了spring test的依赖springboott...
    99+
    2024-04-02
  • ASP.NET Core单元测试中如何Mock HttpClient.GetStringAsync()的示例分析
    ASP.NET Core单元测试中如何Mock HttpClient.GetStringAsync()的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
    99+
    2024-04-02
  • 使用springboot单元测试对weblistener的加载测试
    目录springboot单元测试对weblistener的加载测试原监听器代码测试类springboot web做单元测试springboot单元测试对weblistener的加载测...
    99+
    2024-04-02
  • PHP 代码单元测试与集成测试
    php 单元和集成测试指南单元测试:关注单个代码单元或函数,使用 phpunit 创建测试用例类进行验证。集成测试:关注多个代码单元协同工作的情况,使用 phpunit 的 setup(...
    99+
    2024-05-07
    集成测试 代码单元测试 laravel
  • python单元测试之pytest的使用
    目录一、前提准备二、pytest生成自带的html测试报告三、pytest运行方式四、allure  一、前提准备 1、前提:需要安装pytest和pytest-...
    99+
    2024-04-02
  • java测试单元JUnit最简单的使用
    只是写一个小入门,简单输出文本。首先,创建一个MessageUtil类,用来测试 (推荐学习:java课程)package com.test.jiao; public class MessageUtil { pr...
    99+
    2018-11-15
    java教程 java
  • 使用VisualStudio编写单元测试
    一、什么是单元测试 单元测试就是编写一段代码,用来检查某个特定条件下,另外一段代码的行为是否符合我们的预期。单元测试的代码与实际程序的代码具有同等的重要性。每一个单元测试,都是用来定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作