问题标签 [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.

0 投票
0 回答
3665 浏览

unit-testing - 在测试 http 请求时使用 Golang context.WithValue

我正在尝试进行单元测试,我在gqlgenEcho 的这种情况下使用 GraphQL,我一直在努力用我的上下文进行测试,由于 GraphQL 不使用服务器端点,我无法在测试中添加标头这是我的代码设置上下文值

我在运行服务器时在中间件功能上执行此操作,没有问题,这是我在解析器中的调用方式

但在测试中,我创建的代码总是得到:

是否可以在测试期间设置上下文值?

这是完整的测试代码:

0 投票
1 回答
205 浏览

go - 去测试验证 connect2id 给出“invalid_client”错误

我正在尝试使用 Go 测试验证Connect2id设置,但出现以下错误。

完整的场景输出如下所示。

我的hf1-idp.json文件如下所示。

Connect2id 在设置环境中工作正常。例如,当我使用正确的值运行以下 Curl 命令时,我得到了预期的结果

使用以下代码更新

main_test.go

提供者.go

oidc.go

0 投票
1 回答
773 浏览

go - HttpMock 没有拦截 Resty 调用

我有一个函数调用我想在测试中模拟的外部 api。

测试看起来像这样:

我遇到的问题是模拟没有被使用,外部 api 在我们的 CI 中也将不可用。

在测试中,客户有:

在客户端具有的功能中:

0 投票
0 回答
1533 浏览

go - 在 CI 上运行 go test 时 SIGBUS 错误代码 = 0x2

我不确定什么是解释这一点的最佳方法,但我们经常观察到我们的 CI 因 SIGBUS 问题而失败。这个错误看起来都是 Go 内部的,我们一无所知。

我们已经在本地机器上多次运行测试用例以尝试解决错误。但是每次我们的测试通过时,我们都看不到 SIGBUS 问题。

它只发生在我们 CI 盒子上的随机测试文件上。

相关的堆栈跟踪:

注意:本地盒子是 MACOS,我们使用的 CI 由无人机驱动,我们使用golang:1.13图像来运行我们所有的测试,所以我的假设是linux/amd64

在本地通过MACOS和使用drone exec,并且测试不会导致在 CI 服务器上经常发生的 SIGBUS 错误。

0 投票
1 回答
36 浏览

go - Go test 可以访问生产函数但不能访问测试函数

我有一个具有以下目录结构的 Go 1.14 项目:

在我的billing.go文件中,我有:

在我的fulfillment_test.go文件中,我有:

在我的capture_payment_test.go文件中,我有:

当我cd进入server/payments并运行时,go test我收到以下错误:

谁能发现为什么 fulfillment.Flam()未定义,但billing.Flim()完全没问题?

0 投票
1 回答
111 浏览

go - GO 在测试设置方法中附加标准输入

我正在使用内置testing模块来运行我在 GO 项目中进行的一些功能测试。在我的项目中,我有外部依赖项,我在我的TestMain方法中连接到这些依赖项。我将这些连接保存到变量中,然后我在测试中使用这些变量,并且连接可能需要很长时间才能正确建立(Kafka 有人吗?)。我想按需运行测试,但是在设置了这些变量之后。

stdin所以我想要的是在我的函数中收听TestMain并运行或退出测试。但我希望它由用户控制,这样我就可以设置我的测试环境,并且测试将在我的命令下运行。

但可悲的是,似乎在运行时go test ...直接stdin映射到/dev/null. 因此,当我尝试阅读时os.Stdin,会出现EOF错误。最低限度的代码是:

我已经在圈子中阅读了如何模拟单元测试和排序,但我的案例更多的是功能测试运行器。有没有办法,甚至是一些诡计,可以让我打开或更改测试过程stdin

0 投票
0 回答
97 浏览

rest - 无法使用 golang 测试和 beego 框架验证具有预期输出的 Http 响应

我无法将响应正文与预期值匹配这是我尝试使用 POST 方法创建资源的代码

或者至少我应该能够忽略一些对验证不重要的字段,例如:createdAt、updatedAt 字段

0 投票
1 回答
510 浏览

unit-testing - 在 go test 文件中使用包级变量

我正在尝试为这样的文件编写单元测试

但是对于单元测试,我想使用 /path/to/dummy/file.json 供 DoSomething() 使用 file1_test.go 将与 file.go 在同一个包下编写测试用例的正确方法是什么这个功能?

将 fileName 变量修改为 /path/to/dummy/file.json 是个好主意吗?还是我们应该修改 file1.go 以使其适合测试?

这是使这些值可配置的标准吗,以便它们可以在单元测试期间修改,例如在这种情况下的文件名,或者我们应该修改我们的函数,以便它可以直接处理字节流数据,以便在测试测试期间我们可以提供虚拟数据直接地?

0 投票
1 回答
900 浏览

unit-testing - Go sqlmock SELECT 缺少预期的查询

到这里。试图弄清楚如何使用SQL mock v2

这是我的界面:

我对该接口的实现:

我的单元测试(包括设置/初始化):

当它运行时,测试失败,原因如下:

我要做的就是确认使用函数GormDB中指定的 SELECT 语句查询了该实例FetchOrderById

有人知道我需要做什么才能实现这一目标并通过测试吗?

0 投票
1 回答
1925 浏览

go - 在测试golang期间存根time.Now()?

我在这里关注另一个答案:在测试期间是否有一种简单的方法可以在全球范围内存根 time.Now()?

所以我有这个文件,我可以在其中执行以下操作:

我们在另一个函数中使用 GenerateTimestamp()


现在在我的测试文件上,我正在做类似的事情:

我收到此错误cannot use func literal (type func() int64) as type func() time.Time in assignment。我需要能够返回一个 int64 类型(我的原始函数返回),我该如何解决这个问题?

随意指向我的文档,我是 Go 新手!