问题标签 [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 回答
2541 浏览

go - Testify Suites 中的 SetupSuite 和 SetupTest 之间的区别

我试图弄清楚SetupSuite和之间的区别SetupTest已经有一段时间了。根据我了解的博客上的信息,SetupSuite它在整个套件SetupTest之前运行并在每个测试用例之前运行。但是在这种情况下,什么是实际的例子呢?在这两种情况下,依赖注入有何不同?

0 投票
1 回答
1764 浏览

go - 证明在函数内部模拟函数返回

我想模拟一个函数的响应。但是此函数位于或在另一个函数内部调用。假设我有这个功能

现在在我的测试文件上

正如您在函数TheFunction()中看到的那样,调用了函数ToMockResponse。现在我想测试TheFunction但我想模拟ToMockResponse的响应如何实现?

0 投票
2 回答
7378 浏览

go - 无法通过 Testify Mock 对象错误

嗨,我正在尝试在 GO 中模拟一个结构。我正在使用作证来做到这一点。但我似乎无法让它发挥作用,现在也不知道我做错了什么。下面是我拥有的示例 main.go 和 main_test.go 文件

这是我的测试文件

我收到此错误

我不知道如何修复,因为这是我第一次使用 Go 并使用 Testify 进行单元测试。如果有人可以看看并有一个工作版本,将不胜感激。谢谢

0 投票
2 回答
56 浏览

unit-testing - 创建模拟函数

嗨,我想测试或模拟某个函数并为此返回一个模拟响应。下面演示的是我的代码

示例.go

我的测试是这样的

Sample_test.go

因此,在运行go test时,我期望接收和输出Mock 响应,但我仍然进入Connect 内部。我在这里缺少什么吗?

0 投票
1 回答
2146 浏览

unit-testing - 初始化循环 Golang

嗨,我正在尝试使我的功能单元可测试。其中一个建议是将函数分配给变量并使其全局可访问。我只是这样做了,但现在我遇到了一个初始化循环,下面是我的代码

在我的另一个文件中,我将此函数分配给变量

我在 global.go 中这样做的原因是为了使DoRetryDownloadFile单元可测试。使用这种方法意味着我可以在不创建接口的情况下模拟该功能。因为这只是一个独立的功能,不需要在某个类中。变量的所有其余部分都可以,但是当涉及执行递归行为的函数时,我收到以下错误

我知道这可能在这里重复,但我看不出这里的解决方案如何解决我的问题。

请帮助我。谢谢,我在此链接中阅读了有关模拟函数的信息

Go 中的模拟函数

https://husobee.github.io/golang/testing/unit-test/2015/06/08/golang-unit-testing.html

0 投票
1 回答
2640 浏览

unit-testing - 测试在 Golang 中加载 JSON 配置文件的方法

在测试的Golang项目中,有一个方法可以将 JSON 配置文件加载到变量中。它的代码是这样的:

我希望对其进行测试,但我不知道是否应该为测试用例创建假 JSON 文件,或者只是模拟整个函数。我的 Java 背景让我倾向于后者。

探索这一点,我发现testify我正在使用的框架有一个用于模拟方法的包,但我试图模拟的不属于接口(非 OOP 语言的陷阱!!)

0 投票
0 回答
1275 浏览

unit-testing - 在 Golang 中模拟具有依赖关系的结构

我在这里看到,你可以有一个名为 Mockery 的框架为你生成接口模拟。这几乎是一件大事,因为我已经在使用 testify,它具有内置的模拟 API(到目前为止,我还没有使用过)。

然而,缺点是它需要接口,而被测代码是一个结构,具有嵌套的依赖关系,包括业务逻辑和第三方代码。我不负责重构代码库(感谢上帝),我想模拟一下

其中 extends DatabaseContext,它具有Session.Store(这两个函数使用的第三方依赖项)以及其他一些我不关心的依赖项。

我怎么能模拟这个结构?

0 投票
2 回答
1596 浏览

unit-testing - 无法在 GoLand IDE 内的测试套件中运行单个测试?

我正在使用testify 的测试套件支持来编写单元测试。这导致我的测试文件有一个单一TestFooBar(t *testing.T)的,suite.Run而我所有的个人测试都成为我的测试套件的一部分,struct带有方法签名,如 - func (suite *myTestSuite) TestMyStuff()

我观察到 GoLand 可以识别所有具有类似签名的方法,TestFooBar(t *testing.T)并在其旁边放置一个绿色播放图标。它将允许我单独运行/调试这些方法。但是,作为上述测试套件一部分的所有测试方法都不会被识别,也不能在 IDE 中单独运行或调试。

有什么方法可以告诉 GoLand 该myTestSuite结构有很多测试可以让我在 IDE 中单独执行它们?

(这里有类似的问题,但这只是在谈论命令行,而我的问题是专门针对 IDE 的。)

0 投票
1 回答
852 浏览

unit-testing - 如何定义模拟方法被调用零次

我正在尝试测试以下方法:

在这种情况下,如果包含需要授权的 URL 并且授权成功,SessionRelease则会调用一个。r

了解以下内容可能很重要:

而那CheckForAuthorization的返回值最终取决于AuthMWInstance

我的测试策略

  • 创建一个存根中间件实例来初始化AuthMWInstance,它只是简单地返回nilfor CheckTokenAndSetSession(会话设置抽象出来,当然,存根对象本身的创建,它有Session),以及一个MiddlewareSt完整的假nonAuthURLsforGetInfo()
  • 创建一个模拟session.Store,对于除健全性测试之外的所有测试,预期对SessionRelease.

可能值得注意(但假设)我正在使用testify嘲笑库来模拟和断言的东西。

考试

是这样实现的:

运行时行为

发生以下错误失败:在此处输入图像描述. 从字面上看,就好像,而不是这样做:

, 我像:

NOTE session.Store.SessionRelease不返回任何东西,因此我什至不费心使用Return().

我是在断言它应该被准确地调用零次吗?

0 投票
1 回答
674 浏览

unit-testing - 模拟接口函数没有被调用

我正在尝试使用 testify 模拟库编写 Go Unit Test。我正在关注这个博客http://goinbigdata.com/testing-go-code-with-testify/。我已将模拟接口传递给 newCalculator 函数,但仍然调用 Random 接口的 Random1 而不是 struct randomMock 的 Random1 函数。

计算器.go

计算器_test.go