返回顶部
首页 > 资讯 > 精选 >表单变量在测试中不可用
  • 136
分享到

表单变量在测试中不可用

2024-02-06 08:02:30 136人浏览 薄情痞子
摘要

问题内容 我是 Go 新手。我使用 DeepMap Openapi 生成器和使用 pgxpool 的 Postgres 编写了一个基于 Echo 服务器构建的 API 服务器。它运行良

问题内容

我是 Go 新手。我使用 DeepMap Openapi 生成器和使用 pgxpool 的 Postgres 编写了一个基于 Echo 服务器构建的 API 服务器。它运行良好并且已经使用了一年,但这并不意味着它写得正确:)。

测试服务器一直使用 shell 脚本和一系列 Curl 调用,效果很好,但我正在尝试更新测试以使用 Go 的测试框架。我已经进行了一些基本测试,但是任何需要表单值的东西都不起作用——处理程序函数看不到任何表单值,所以我猜测请求没有封装它们,但我不明白为什么。

下面是Createnode()方法的第一部分,它实现了生成的API接口的一部分。我省略了身体;失败的部分是上下文中出现的内容。

func (si *ServerImplementation) CreateNode(ctx echo.Context) error {
        vals, err := ctx.FORMParams()
        info("In CreateNode() with FormParams %v", vals)
        ...

这是测试函数:

func TestCreateNode(t *testing.T) {
        // not the actual expected return
        expected := "Node created, hooray\n"

        // initialize database with current schema
        api := &ServerImplementation{}
        err := api.Init("host=localhost database=pgx_test user=postgres")
        if err != nil {
                t.Fatal(err)
        }

        // handle teardown in this deferred function
        t.Cleanup(func() {
                t.Log("Cleaning up API")
                api.Close()
        })

        // start up WEBserver
        e := echo.New()

        // this didn't work either
        //f := make(url.Values)
        //f.Set("name", "node1")
        //req := Httptest.NewRequest(http.MethodPost, "/nodes/", strings.NewReader(f.Encode()))
        //req.Header.Add("Content-Type", "multipart/form-data")

        req := httptest.NewRequest(echo.POST, "/", strings.NewReader(`{"name":"node1"}`))
        req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON)
        rec := httptest.NewRecorder()
        ctx := e.NewContext(req, rec)

        if assert.NoError(t, api.CreateNode(ctx)) {
                assert.Equal(t, http.StatusOK, rec.Code)
                assert.Equal(t, expected, rec.Body.String())
        }
}

我不会打扰完整的测试输出,因为当 CreateNode() 没有收到任何值时,一切都会失败:

=== RUN   TestCreateNode
2023/08/26 15:09:43 INFO:    In CreateNode() with FormParams map[]
2023/08/26 15:09:43 INFO:    No name provided in CreateNode()

据我所知,我正在密切关注类似的示例。我希望这是足够的细节,但不想用不必要的支持代码来超载问题。

节点的端点是 /nodes ,API 的基本 URL 是 /api ,但这两者都没有在这里反映出来,从我看到的例子来看它们是不必要的。 Echo 的示例始终使用 / 作为端点。


正确答案


好吧,我是叮当。

我把很多例子拼凑在一起,试图让一些东西发挥作用,只有一次我在测试功能中尝试了以下操作:

req.Header.Set("Testing", "Yes")

并在 CreateNode 中将其弹出:

info("Header: %v", ctx.Request().Header)

这给了我:

2023/08/26 20:04:36 INFO:    Header: map[Content-Type:[application/x-www-form-urlencoded] Testing:[Yes]]

我看到该请求进展顺利,这与我形成请求的方式有关。

我再次检查了示例,意识到我正在根据一个示例设置表单值,但从另一个示例设置内容类型。作品如下:

f := make(url.Values)
        f.Set("name", "node1")
        req := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(f.Encode()))
        req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationForm)

当然,通过 jsON 执行此操作是行不通的,因为 CreateNode() 不是如何解析传入信息的。

这只是我的马虎!

以上就是表单变量在测试中不可用的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 表单变量在测试中不可用

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

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

猜你喜欢
  • 表单变量在测试中不可用
    问题内容 我是 Go 新手。我使用 DeepMap OpenAPI 生成器和使用 pgxpool 的 Postgres 编写了一个基于 Echo 服务器构建的 API 服务器。它运行良...
    99+
    2024-02-06
  • golang可变参数是否可以用于单元测试?
    go 语言中的可变参数允许函数接收数量不定的参数,使用 ... 语法。然而,单元测试无法直接传递可变参数。可以使用反射创建测试助手函数,使用 reflect.valueof(sumnum...
    99+
    2024-04-29
    单元测试 可变参数 golang
  • Python中可变变量与不可变变量详解
    目录一 、常见的变量分类1、变量的创建二、变量分类1、、常见的不可变变量2、常见的可变变量三、拷贝的差别四、参数传递的差别前言: C++不同于Python的显著特点,就是有指针和引用...
    99+
    2024-04-02
  • Python测试 | 在python中创建单元测试
    作为开发人员或程序员, 只要编写代码,通常就会忽略一件事:测试。测试是开发的一部分,您应该严格测试应用程序,以确保它们满足必需的功能。让我们先从为什么要做测试开始:1、减少手动测试的需求因为测试用例是预先编写的,所以没有真正的理由再进行手动...
    99+
    2023-05-14
    Python 测试 单元
  • 如何在PHP中使用常量和变量可变变量
    如何在PHP中使用常量和变量可变变量?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。关于可变变量:以声明的变量前,再加上变量符;运用代码举例说明,如下:<php$china...
    99+
    2023-06-15
  • python怎么对单个值测试多个变量
    这篇文章主要介绍python怎么对单个值测试多个变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!问题正在尝试制作一个函数,它将多个变量与一个整数进行比较并输出一个由三个字母组成的字符串。我想知道是否有办法将其翻译成...
    99+
    2023-06-20
  • css中可不可以定义变量
    本篇内容介绍了“css中可不可以定义变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何在 Golang 单元测试中调试失败的测试?
    如何调试 golang 单元测试失败?查看错误消息,以了解失败原因。使用 delve 调试器逐步执行测试,检查变量值和代码流程。添加日志语句,以跟踪测试执行并获取更多信息。 如何在 G...
    99+
    2024-05-16
    golang 单元测试调试
  • 可以在css中使用变量吗
    这篇文章将为大家详细讲解有关可以在css中使用变量吗,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。CSS 变量当前有两种形式:变量,就是拥有合法标识符和合法的值。可以被使用在任意的地方。可以...
    99+
    2023-06-14
  • 在android中进行单元测试
      在开发过程中,无论是什么语言,如果能够熟练使用单元测试,提高的效率那是大大地,当测试或某相关的小姑娘报bug的时候,站在你身边,用无辜的大眼睛对 你说,“公...
    99+
    2022-06-06
    单元 单元测试 测试 Android
  • 单元测试与集成测试在golang函数测试中的区别?
    单元测试和集成测试是两种不同的 go 函数测试类型,分别用于验证单个函数或多个函数的交互和集成。单元测试只测试特定函数的基本功能,集成测试测试多个函数之间的交互和与应用程序其他部分的集成...
    99+
    2024-04-27
    单元测试 集成测试 golang
  • 怎么在SpringBoot中使用Mockito单元测试
    这期内容当中小编将会给大家带来有关怎么在SpringBoot中使用Mockito单元测试,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mock 测试Mock 测试就是在测试过程中,创建一个假的对象,避免你...
    99+
    2023-06-15
  • 在Go里如何声明不可变量?
    ...
    99+
    2024-04-02
  • 在Android Studio中实现单元测试
      我们写了一个类,我们只希望测试下其算法是否正确,没必要真正运行一个完整的 APP,做单元测试即可。   在 Android Studio 中,我们在 java 文件夹...
    99+
    2022-06-06
    Android Studio studio 单元 单元测试 测试 Android
  • JavaScript throw 语句在单元测试中的作用
    引言 单元测试是确保代码质量和可靠性的重要组成部分。JavaScript 中的 throw 语句通常用于抛出异常,但它在单元测试中也有其他用途。通过抛出异常,我们可以捕获错误、验证断言并模拟异常行为。本文将展示如何使用 throw 语句增...
    99+
    2024-03-01
    JavaScript、单元测试、异常、抛出、断言、模拟
  • vue表单数据绑定变量不存在报错如何解决
    本篇内容介绍了“vue表单数据绑定变量不存在报错如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、v-model的使用方法v-mod...
    99+
    2023-07-06
  • 怎么在python中创建单元测试
    本篇内容主要讲解“怎么在python中创建单元测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在python中创建单元测试”吧!让我们先从为什么要做测试开始:1、减少手动测试的需求因为测试...
    99+
    2023-07-06
  • 怎么在Android中利用Activity实现单元测试
    这期内容当中小编将会给大家带来有关怎么在Android中利用Activity实现单元测试,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对Acitivity的测试对于Activity,我们大致有两种测试需求...
    99+
    2023-05-30
    android activity
  • 如何在python中使用变量和列表
    如何在python中使用变量和列表?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面...
    99+
    2023-06-14
  • 1.1用图表分析单变量数据
      单变量:表达式、方程式、函数或者一元多项式等   数据:http://www.presidency.ucsb.edu/data/sourequests.php美国总统历年在国情咨文中对国会提起的诉求数量   本次使用到的数据量并不多...
    99+
    2023-01-30
    变量 数据 图表分析
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作