问题标签 [testify]

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 投票
1 回答
102 浏览

go - 了解测试覆盖率

我的 Go 程序中有一个简单的包来生成哈希 ID。

我还为它编写了一个测试,但无法理解为什么我只覆盖了 83% 的语句。

下面是我的包函数代码:

下面是我的测试代码:

使用 coverprofile 运行 Go 测试会提到测试未涵盖以下部分:

有什么建议吗?

0 投票
1 回答
123 浏览

unit-testing - 具有 ORM 交互的单元测试 Go 函数

我写了一个函数:

我想对此进行单元测试。理想情况下,单元测试意味着函数的每一行都需要测试。我不确定我应该如何测试数据库连接是否打开,然后它是否显示数据库的所有内容。我应该如何测试这段代码?

此函数是简单 CRUD 应用程序的 GET 端点。代码在这里

0 投票
1 回答
1671 浏览

go - 如何使用 testify/mock 在 golang 中模拟数据库层

我正在尝试在服务器上运行单元测试,并使用“github.com/stretchr/testify/mock”来模拟数据库层。把所有代码放在这里会很乱,所以我创建了一个小项目,它会给出我的代码结构的想法以及我真正想要实现的目标“ https://github.com/utkarsh17ife/goMockPractice ”。您可以提取此代码并运行“go test ./...”(不确定在这里提供 github 链接是否正确,但我觉得这会让事情变得更容易)

服务器结构有一个字段 db 是接口类型的,所以当我们创建一个普通服务器时,为 db 分配了真实的数据库,但在测试时分配了模拟数据库。但问题是我无法在数据库上执行以下操作

由于 db 接口没有“On”和“AssertExpectations”字段。

看起来这不是实现模拟的方法,请让我知道正确的测试方法。

0 投票
1 回答
1265 浏览

unit-testing - 使用 PanicsWithValue 进行 Golang 单元测试

我们正在尝试测试一个引发index out of range错误的函数。

单元测试的代码很简单,比如:

但不幸的是,测试失败并出现一个奇怪的错误

您可以看到 panic 值和错误显示相同,但​​测试仍然失败。
有什么想法吗?

0 投票
1 回答
269 浏览

unit-testing - 如何测试以文件夹为输入的 HTTP 函数?

我有一个 HTTP 处理函数 (POST),它允许用户从 Web 浏览器应用程序上传文件夹。该文件夹是从 JavaScript 代码作为文件夹中的文件数组传递的,在后端(Go API)上,它被接受为[]*multipart.FileHeader. 我正在努力为这个函数编写一个 Go 单元测试。如何将文件夹作为测试函数的输入传递?我需要帮助以httpRequest正确的格式创建。

我尝试使用/设置数组的值FileHeader,但不允许导入某些属性。所以必须有一种我不知道的测试这个处理程序的不同方法。

文件夹上传的处理函数:

同一处理程序的单元测试功能:

0 投票
1 回答
2438 浏览

go - Testify mock 正在返回该函数尚未被调用的断言

我的测试一直失败,no actual calls happened但我很肯定 func 被调用(这是一个日志功能,所以我在终端上看到了日志)

基本上我的代码看起来像这样:

common/utils.go


main.go


test.go


我希望这能奏效,但随后,我不断得到no actual calls happened. 不知道我在这里做错了什么。

0 投票
0 回答
287 浏览

go - 测试用例在 gin 框架中不起作用

我已经编写了测试用例来测试 Gin-Gonic 框架中的方法,但它在运行测试用例时没有给出预期的输出。但是当我在 Postman 中使用 API 运行方法时,它工作正常。

测试用例

创建测试用例的方法

路由器

当我使用 go test -v ./... 运行测试用例时输出

在通过 API 运行时,它可以工作,但在通过测试用例运行时不能。

0 投票
1 回答
931 浏览

unit-testing - 如何只模拟接口的一种方法

我正在努力理解 Go 中的模拟(正在寻找与 Go 中的 java 等效的 Mockito.spy 相关的东西)。

假设我在 Go 中有一个带有 5 个方法的接口。但是我要测试的那段代码只引用了两种方法。现在我如何在不实现所有方法的情况下模拟这种依赖关系,即我在源代码中的实际实现实现了 5 个接口方法,但是有没有办法避免在测试文件中实现 5 个方法的虚拟接口实现。以下是我目前正在做的方式,实现5个方法是可以管理的,但是如果接口有20个方法怎么办,模拟实现测试文件中的所有方法变得乏味。

例子:

handler.go 中的源代码:

api.go 中的源代码:

测试类代码:

问题:

有没有办法只模拟我在上述情况下只需要 methodOne() 和 methodTwo() 方法,而不用担心测试中的剩余方法?如果存在,您能否建议任何其他替代方案?谢谢

0 投票
1 回答
396 浏览

unit-testing - golang 中的模拟函数用于测试

我想通过模拟其他包(package2)中的 FetchAllData() 和 SaveData() 来为 CreateData() 函数编写单元测试用例,请帮助我用示例模拟该函数,

提前致谢

我只需要模拟上面的函数而不修改函数。我在找那个

0 投票
2 回答
3038 浏览

unit-testing - 错误:suite.go:61: test panicked: reflect: Call with too little input arguments

我正在设置单元测试golang
但是现在我在运行时遇到错误go test -v
我想解决这个错误并使测试成功。

现在我正在service_test.go设置service.go.

service_test.go

服务.go

到go

这是完整的源代码(分支:go-test-service)
https://github.com/jpskgc/article/tree/go-test-service

我期望service_test.go成功测试。
但实际情况是它因错误而失败。
我想解决这个错误并成功测试。