问题标签 [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.
go - Testify Suites 中的 SetupSuite 和 SetupTest 之间的区别
我试图弄清楚SetupSuite
和之间的区别SetupTest
已经有一段时间了。根据我了解的博客上的信息,SetupSuite
它在整个套件SetupTest
之前运行并在每个测试用例之前运行。但是在这种情况下,什么是实际的例子呢?在这两种情况下,依赖注入有何不同?
go - 证明在函数内部模拟函数返回
我想模拟一个函数的响应。但是此函数位于或在另一个函数内部调用。假设我有这个功能
现在在我的测试文件上
正如您在函数TheFunction()中看到的那样,调用了函数ToMockResponse。现在我想测试TheFunction但我想模拟ToMockResponse的响应如何实现?
go - 无法通过 Testify Mock 对象错误
嗨,我正在尝试在 GO 中模拟一个结构。我正在使用作证来做到这一点。但我似乎无法让它发挥作用,现在也不知道我做错了什么。下面是我拥有的示例 main.go 和 main_test.go 文件
这是我的测试文件
我收到此错误
我不知道如何修复,因为这是我第一次使用 Go 并使用 Testify 进行单元测试。如果有人可以看看并有一个工作版本,将不胜感激。谢谢
unit-testing - 创建模拟函数
嗨,我想测试或模拟某个函数并为此返回一个模拟响应。下面演示的是我的代码
示例.go
我的测试是这样的
Sample_test.go
因此,在运行go test时,我期望接收和输出Mock 响应,但我仍然进入Connect 内部。我在这里缺少什么吗?
unit-testing - 初始化循环 Golang
嗨,我正在尝试使我的功能单元可测试。其中一个建议是将函数分配给变量并使其全局可访问。我只是这样做了,但现在我遇到了一个初始化循环,下面是我的代码
在我的另一个文件中,我将此函数分配给变量
我在 global.go 中这样做的原因是为了使DoRetry和DownloadFile单元可测试。使用这种方法意味着我可以在不创建接口的情况下模拟该功能。因为这只是一个独立的功能,不需要在某个类中。变量的所有其余部分都可以,但是当涉及执行递归行为的函数时,我收到以下错误
我知道这可能在这里重复,但我看不出这里的解决方案如何解决我的问题。
请帮助我。谢谢,我在此链接中阅读了有关模拟函数的信息
https://husobee.github.io/golang/testing/unit-test/2015/06/08/golang-unit-testing.html
unit-testing - 测试在 Golang 中加载 JSON 配置文件的方法
在测试的Golang项目中,有一个方法可以将 JSON 配置文件加载到变量中。它的代码是这样的:
我希望对其进行测试,但我不知道是否应该为测试用例创建假 JSON 文件,或者只是模拟整个函数。我的 Java 背景让我倾向于后者。
探索这一点,我发现testify
我正在使用的框架有一个用于模拟方法的包,但我试图模拟的不属于接口(非 OOP 语言的陷阱!!)
unit-testing - 在 Golang 中模拟具有依赖关系的结构
我在这里看到,你可以有一个名为 Mockery 的框架为你生成接口模拟。这几乎是一件大事,因为我已经在使用 testify,它具有内置的模拟 API(到目前为止,我还没有使用过)。
然而,缺点是它需要接口,而被测代码是一个结构,具有嵌套的依赖关系,包括业务逻辑和第三方代码。我不负责重构代码库(感谢上帝),我想模拟一下
其中 extends DatabaseContext
,它具有Session.Store
(这两个函数使用的第三方依赖项)以及其他一些我不关心的依赖项。
我怎么能模拟这个结构?
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 的。)
unit-testing - 如何定义模拟方法被调用零次
我正在尝试测试以下方法:
在这种情况下,如果包含需要授权的 URL 并且授权成功,SessionRelease
则会调用一个。r
了解以下内容可能很重要:
而那CheckForAuthorization
的返回值最终取决于AuthMWInstance
我的测试策略
- 创建一个存根中间件实例来初始化
AuthMWInstance
,它只是简单地返回nil
forCheckTokenAndSetSession
(会话设置抽象出来,当然,存根对象本身的创建,它有Session
),以及一个MiddlewareSt
完整的假nonAuthURLs
forGetInfo()
- 创建一个模拟
session.Store
,对于除健全性测试之外的所有测试,预期对SessionRelease
.
可能值得注意(但假设)我正在使用testify,嘲笑库来模拟和断言的东西。
考试
是这样实现的:
运行时行为
, 我像:
NOTE session.Store.SessionRelease
不返回任何东西,因此我什至不费心使用Return()
.
我是在断言它应该被准确地调用零次吗?
unit-testing - 模拟接口函数没有被调用
我正在尝试使用 testify 模拟库编写 Go Unit Test。我正在关注这个博客http://goinbigdata.com/testing-go-code-with-testify/。我已将模拟接口传递给 newCalculator 函数,但仍然调用 Random 接口的 Random1 而不是 struct randomMock 的 Random1 函数。
计算器.go
计算器_test.go