返回顶部
首页 > 资讯 > 后端开发 > GO >将 httptest 方法包装在辅助函数中
  • 819
分享到

将 httptest 方法包装在辅助函数中

2024-04-05 00:04:34 819人浏览 薄情痞子
摘要

“纵有疾风来,人生不言弃”,这句话送给正在学习golang的朋友们,也希望在阅读本文《将 Httptest 方法包装在辅助函数中》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相

“纵有疾风来,人生不言弃”,这句话送给正在学习golang的朋友们,也希望在阅读本文《将 Httptest 方法包装在辅助函数中》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

在我的处理程序测试中,我多次使用在标头中提供带有身份验证令牌的测试请求的模式。为了抽象这一点并节省大量代码,我编写了以下函数:

func serveTestReq(payload string, route string, method string, handlerfunc func(w http.ResponseWriter, r *http.Request), token string) {
        body := strings.NewReader(payload)
        req, err := http.NewRequest(method, route, body)
        Expect(err).NotTo(HaveOccurred())

        req.Header.Add("Content", "application/JSON")
        req.Header.Add("Authorization", "Bearer "+token)

        handler := authMiddleware(handlerfunc)
        rr := httptest.NewRecorder()
        handler.ServeHTTP(rr, req)

}

但是,如果我调用此函数两次(例如,测试幂等 posts),则该请求似乎只被服务一次。上面的函数有问题吗?


解决方案


问题是我没有检查函数中生成的 http 响应。正确的函数如下所示:

func serveTestReq(payload string, route string, method string, handlerfunc func(w http.ResponseWriter, r *http.Request), token string) *httptest.RepsonseRecorder {
        body := strings.NewReader(payload)
        req, err := http.NewRequest(method, route, body)
        Expect(err).NotTo(HaveOccurred())

        req.Header.Add("Content", "application/json")
        req.Header.Add("Authorization", "Bearer "+token)

        handler := authMiddleware(handlerfunc)
        rr := httptest.NewRecorder()
        handler.ServeHTTP(rr, req)

        return rr

}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

您可能感兴趣的文档:

--结束END--

本文标题: 将 httptest 方法包装在辅助函数中

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

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

猜你喜欢
  • 将 httptest 方法包装在辅助函数中
    “纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《将 httptest 方法包装在辅助函数中》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相...
    99+
    2024-04-05
  • vuex 中辅助函数mapGetters的基本用法详解
    mapGetters辅助函数 mapGetters辅助函数仅仅是将 store 中的 getter 映射到局部计算属性: 1、在组件或界面中不使用mapGetter调用映射vuex中...
    99+
    2024-04-02
  • 将SP2整合进Office 2007的安装包中的方法
    大家知道,微软已经给其旗下最新的Office 2007套装开发了SP2服务包并即将向公众发布正式版了,在SP2中,Office将带来更强的稳定性、安全性和性能。那么,如何像Vista整合SP1一样将SP2整合到Offic...
    99+
    2023-05-24
    SP2 整合 Office 2007 安装包 方法
  • 在mysql中创建函数的方法
    这篇文章主要介绍在mysql中创建函数的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在mysql中可以通过语法“CREATE FUNCTION func_name ( [fun...
    99+
    2024-04-02
  • 在 Node.js 中使用 async 函数的方法
    借助于新版 V8 引擎,Node.js 从 7.6 开始支持 async 函数特性。今年 10 月 31 日,Node.js 8 也开始成为新的长期支持版本,因此你完全可以放心大胆地在你的代码中使用 asy...
    99+
    2022-06-04
    函数 方法 Node
  • Python函数在实际操作中获取帮助的方案是什么
    本篇文章为大家展示了Python函数在实际操作中获取帮助的方案是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python函数作为计算机语言广泛应用的一种语言,如果你想在用Python编写运行H...
    99+
    2023-06-17
  • golang函数闭包在并发编程中的高级用法
    在 go 语言中,闭包允许在并发编程中安全地共享数据和状态。具体应用包括:共享对数据库的访问共享包含共享状态的结构 Go 函数闭包在并发编程中的高级用法 在 Go 语言中,闭包是一种强...
    99+
    2024-04-23
    闭包 并发编程 golang 作用域
  • 在JavaScript中使用高阶函数的方法
    目录JavaScript将函数视为一等公民高阶函数接收函数作为参数代码可重用性返回函数高阶函数模板正在使用高阶函数总结将另一个函数作为参数的函数,或者定义一个函数作为返回值的函数,被...
    99+
    2024-04-02
  • 在PHP中将数据输出至Excel表格中的方法
    这篇文章主要介绍在PHP中将数据输出至Excel表格中的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法一:首先先安装依赖的库文件,composer安装php处理excel类库。composer re...
    99+
    2023-06-14
  • golang 使用 functools.partial 或类似的方法来完成包装其他函数
    问题内容 (golang 新手) 假设我有两个与底层 api 交互的函数,我想用重试来包装这两个函数,但这两个函数具有不同的输入参数。 在python中,我将使用functools.p...
    99+
    2024-02-06
  • 将图片储存在MySQL数据库中的几种方法
    通常对用户上传的图片需要保存到数据库中。 解决方法一般有两种: 1、将图片保存的路径存储到数据库; 2、将图片以二进制数据流的形式直接写入数据库字段中。 以下为具体方法: 一、保存图片的上传路径到数据库: ...
    99+
    2024-04-02
  • 在动态库中调用外部函数的方法
    本篇内容介绍了“在动态库中调用外部函数的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!愉快的玩耍比如:...
    99+
    2024-04-02
  • Pythond类在函数中的编程方法是什么
    Pythond类在函数中的编程方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Pythond类如何进行相关的应用呢?这个问题需要我们不断的学习。下面我们就来介绍下Pyt...
    99+
    2023-06-17
  • 三种在ES6中将非数组转换为数组的方法详情
    目录Array.from()类数组对象转换实例类数组对象转换应用含有迭代器对象转换实例Array.from()的第二个参数Array.of()扩展运算符最后前言: 我们常常想使用数组...
    99+
    2022-11-13
    ES6将非数组转换为数组方法 ES6数组转换
  • 在 PHP 中将数组转换为不重复列表的方法
    php 中将数组转换为不重复列表的方法有多种:array_unique() 函数:将数组中的值与键关联,选择键对应的第一个值为不重复元素。array_flip() 和 array_key...
    99+
    2024-04-28
    列表 php 数组
  • JavaScript中判断函数、变量是否存在的方法
    这篇文章主要介绍了JavaScript中判断函数、变量是否存在的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript中判断函数、变量是否存在的方法:1、判断...
    99+
    2023-06-14
  • 如何在C#项目中延迟执行方法函数
    本篇文章为大家展示了如何在C#项目中延迟执行方法函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 if (MessageBox.Show("确定要清理吗",...
    99+
    2023-06-07
  • 如何在Node.js中使用async函数的方法详解
    目录前言什么是 async 函数向 async 函数迁移3 Async 函数的最佳实践在 express 中使用 async 函数并行执行前言 借助于新版 V8 引擎,Node.j...
    99+
    2022-12-19
    Node.js使用async函数 Node.js async
  • Go 函数 API 在 Bash 中的使用方法是什么?
    在 Bash 脚本中使用 Go 函数 API 可以让你的脚本更加高效和灵活。Go 函数 API 是 Go 语言中提供的一组函数库,可以帮助你在 Bash 脚本中实现更加复杂的功能。本文将介绍如何在 Bash 中使用 Go 函数 API,并...
    99+
    2023-08-07
    函数 api bash
  • 方法与函数在Go语言中的应用对比
    方法与函数在Go语言中的应用对比 在Go语言中,方法(methods)和函数(functions)是两种常见的编程概念。虽然它们有一定的相似之处,但在用法和应用上却有一些显著的区别。本...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作