问题标签 [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 - 从包函数中返回一个 Mock
我对 Go 还很陌生,在编写测试时遇到了一些问题,特别是模拟包函数的响应。
我正在为github.com/go-redis/redis
. 目前它确实只有更好的失败错误,但它会随着 statsd 跟踪进一步扩展,但我离题了......
我有以下我创建的 go 包
我的问题是我想redis.NewClient
返回一个模拟。这是我编写的测试代码,但它不起作用:
我收到以下错误:cannot use clientMock (type *redisClientMock) as type *redis.Client in return argument
。我想我读到我需要模拟 的所有功能redis.Client
才能在这种情况下将其用作模拟,但真的是这样吗?这似乎是矫枉过正,我应该能够以某种方式做到这一点。我该如何让这个测试工作,或者我是否需要重组我的代码以便更容易编写测试?
go - 如何接收由 testify 框架“assert”方法中的方法返回的多个值作为参数?
下面是一个示例代码,它返回多个值。
在测试文件中,我尝试过做以下事情。
我还检查了其他答案,但找不到我需要的。
go - 进行单元测试 - 调用数据库事务开始,不是预期的错误
我正在尝试使用 Data Doggo-sqlmock
和testify
.
我有以下代码:
但是当我运行时TestInit
,我收到以下错误:
我有几个问题:
- 这里有什么问题?
- 有没有办法知道
SetupSuite
函数是否正在运行? - 为什么
? my-project [no test files]
我跑步时会得到go test
?这是上面代码的文件路径:my-project/test/models/User_test.go
go - 如何在使用 gin 框架进行模拟时将 json 数据作为请求参数传递
我有一个功能可以创建正常工作的用户。现在我必须在Prepare and SaveUser
里面模拟函数CreateUser
。但这CreateUser
需要 json 数据作为请求参数。下面是我的CreateUser
功能。
这是上述创建用户所需的 json 数据作为请求参数。我想在模拟时传递以下数据。
下面是模拟上面创建用户功能的测试用例。
提前致谢。
go - 通过拉伸器/作证模拟,不同的返回参数
下面的函数描述了如何使用 testify 进行模拟。args.Bool(0)
,args.Error(1)
是模拟的位置返回值。
是否可以返回除 args.Int()
, args.Bool()
,以外的任何内容args.String()
?如果我需要退货int64
,或者定制struct
。有什么方法还是我错过了什么?
例如:
go - 如果关键测试失败,如何中止测试
在 Go 中,如果其中一个测试失败,有没有办法提前中止一组测试?
我正在使用stretchr/testify套件,但这只是建立在基本的 go测试功能之上。
我考虑过的一些选项:
- 我查看了设置 testing.failFast 但它没有被导出。
- 不推荐使用 os.Exit(),因为它可能会弄乱测试输出等。
- 在第一次失败时停止是不够的,因为第一次失败可能不在关键测试中
我可以添加自己的标志,然后添加到每个测试中:
但这是添加到每个测试中的重复且烦人的样板。我想要的是这样的:
这里有一个常见的做法吗?
unit-testing - 使用 testify 两次模拟不同输入和输出的接口方法
如何在 golang 测试中模拟两次接口方法?例如:
当我测试时func GetBookDetail()
,我怎样才能模拟Get(key string, data interface{}) error
两次?我尝试这样做,但失败了:
在测试中出现如下错误:
差异:
0: PASS: (string=book) 由 func(string) bool 匹配
1: FAIL: (*Book=&{ }) 不匹配 func() bool [恢复]
恐慌:
注意:我使用github.com/stretchr/testify
go - 没有接收器的模拟功能
我有文件util.go
:
我正在使用 编写单元测试testify
,从Foo
. 我想要:
- 嘲笑
helper
- assert mocked
helper
被调用了 1 次
我在https://stackoverflow.com/a/19168875/1661745看到了一些有前途的解决方案,但不确定:
方法 1:将 helper 作为参数传递给Foo
. 我的疑问:testify 需要一个 Mock 结构来 AssertNumberOfCalls,而这里没有结构。
方法 2:为Foo
. 我的疑问:我不知道为 utils 创建一个结构是否有意义。还需要更多的重构,因为调用者Foo
需要一个 utils 结构。
最好的方法是什么?
unit-testing - GoLang Sarama ConsumerGroup 模拟
我是 Go 新手,我也在努力模拟这个电话:sarama.NewConsumerGroup(brokers, group, config)
我正在使用 testify,我的模拟代码目前看起来像:
但我得到了错误:
我相信我错误地嘲笑了电话,但现在确定还能做什么。
unit-testing - 有没有办法在多次调用函数时每次调用 AssertCalled
我正在尝试使用stretchr/testify对如下代码进行单元测试:
我想调用并AssertCalled
验证两者确实是用预期的函数调用的。但是我只能在函数的最后一次调用中断言,即使用. 有什么方法或我可以用它来断言调用吗?data1
data2
data2
data1