问题标签 [go-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 在测试 http 请求时使用 Golang context.WithValue
我正在尝试进行单元测试,我在gqlgen
Echo 的这种情况下使用 GraphQL,我一直在努力用我的上下文进行测试,由于 GraphQL 不使用服务器端点,我无法在测试中添加标头这是我的代码设置上下文值
我在运行服务器时在中间件功能上执行此操作,没有问题,这是我在解析器中的调用方式
但在测试中,我创建的代码总是得到:
是否可以在测试期间设置上下文值?
这是完整的测试代码:
go - 去测试验证 connect2id 给出“invalid_client”错误
我正在尝试使用 Go 测试验证Connect2id设置,但出现以下错误。
完整的场景输出如下所示。
我的hf1-idp.json文件如下所示。
Connect2id 在设置环境中工作正常。例如,当我使用正确的值运行以下 Curl 命令时,我得到了预期的结果
使用以下代码更新
main_test.go
提供者.go
oidc.go
go - HttpMock 没有拦截 Resty 调用
我有一个函数调用我想在测试中模拟的外部 api。
测试看起来像这样:
我遇到的问题是模拟没有被使用,外部 api 在我们的 CI 中也将不可用。
在测试中,客户有:
在客户端具有的功能中:
go - 在 CI 上运行 go test 时 SIGBUS 错误代码 = 0x2
我不确定什么是解释这一点的最佳方法,但我们经常观察到我们的 CI 因 SIGBUS 问题而失败。这个错误看起来都是 Go 内部的,我们一无所知。
我们已经在本地机器上多次运行测试用例以尝试解决错误。但是每次我们的测试通过时,我们都看不到 SIGBUS 问题。
它只发生在我们 CI 盒子上的随机测试文件上。
相关的堆栈跟踪:
注意:本地盒子是 MACOS,我们使用的 CI 由无人机驱动,我们使用golang:1.13
图像来运行我们所有的测试,所以我的假设是linux/amd64
在本地通过MACOS
和使用drone exec
,并且测试不会导致在 CI 服务器上经常发生的 SIGBUS 错误。
go - Go test 可以访问生产函数但不能访问测试函数
我有一个具有以下目录结构的 Go 1.14 项目:
在我的billing.go
文件中,我有:
在我的fulfillment_test.go
文件中,我有:
在我的capture_payment_test.go
文件中,我有:
当我cd
进入server/payments
并运行时,go test
我收到以下错误:
谁能发现为什么 fulfillment.Flam()
未定义,但billing.Flim()
完全没问题?
go - GO 在测试设置方法中附加标准输入
我正在使用内置testing
模块来运行我在 GO 项目中进行的一些功能测试。在我的项目中,我有外部依赖项,我在我的TestMain
方法中连接到这些依赖项。我将这些连接保存到变量中,然后我在测试中使用这些变量,并且连接可能需要很长时间才能正确建立(Kafka 有人吗?)。我想按需运行测试,但是在设置了这些变量之后。
stdin
所以我想要的是在我的函数中收听TestMain
并运行或退出测试。但我希望它由用户控制,这样我就可以设置我的测试环境,并且测试将在我的命令下运行。
但可悲的是,似乎在运行时go test ...
直接stdin
映射到/dev/null
. 因此,当我尝试阅读时os.Stdin
,会出现EOF
错误。最低限度的代码是:
我已经在圈子中阅读了如何模拟单元测试和排序,但我的案例更多的是功能测试运行器。有没有办法,甚至是一些诡计,可以让我打开或更改测试过程stdin
?
rest - 无法使用 golang 测试和 beego 框架验证具有预期输出的 Http 响应
我无法将响应正文与预期值匹配这是我尝试使用 POST 方法创建资源的代码
或者至少我应该能够忽略一些对验证不重要的字段,例如:createdAt、updatedAt 字段
unit-testing - 在 go test 文件中使用包级变量
我正在尝试为这样的文件编写单元测试
但是对于单元测试,我想使用 /path/to/dummy/file.json 供 DoSomething() 使用 file1_test.go 将与 file.go 在同一个包下编写测试用例的正确方法是什么这个功能?
将 fileName 变量修改为 /path/to/dummy/file.json 是个好主意吗?还是我们应该修改 file1.go 以使其适合测试?
这是使这些值可配置的标准吗,以便它们可以在单元测试期间修改,例如在这种情况下的文件名,或者我们应该修改我们的函数,以便它可以直接处理字节流数据,以便在测试测试期间我们可以提供虚拟数据直接地?
unit-testing - Go sqlmock SELECT 缺少预期的查询
到这里。试图弄清楚如何使用SQL mock v2。
这是我的界面:
我对该接口的实现:
我的单元测试(包括设置/初始化):
当它运行时,测试失败,原因如下:
我要做的就是确认使用函数GormDB
中指定的 SELECT 语句查询了该实例FetchOrderById
。
有人知道我需要做什么才能实现这一目标并通过测试吗?
go - 在测试golang期间存根time.Now()?
我在这里关注另一个答案:在测试期间是否有一种简单的方法可以在全球范围内存根 time.Now()?
所以我有这个文件,我可以在其中执行以下操作:
我们在另一个函数中使用 GenerateTimestamp()
现在在我的测试文件上,我正在做类似的事情:
我收到此错误cannot use func literal (type func() int64) as type func() time.Time in assignment
。我需要能够返回一个 int64 类型(我的原始函数返回),我该如何解决这个问题?
随意指向我的文档,我是 Go 新手!