Go语言 如何在运行cubble时模拟在服务/控制器内部使用的库

ny6fqffe  于 2023-03-27  发布在  Go
关注(0)|答案(1)|浏览(284)

我使用cucumber运行验收测试。我使用以下Zendesk库调用方法来创建票证,并查看它们https://github.com/nukosuke/go-zendesk
我想知道在编写验收测试时如何模拟这个库。我正在使用依赖注入设计在一个单元测试用例上测试它。但我不知道如何在验收测试时模拟它。
我知道在验收测试的情况下,你应该在没有mocking的情况下运行它,但是现在假设这个zendesk API有成本,我不想在幕后实际调用zendesk api。
我怎么能在这里嘲笑图书馆呢?
谢谢

nqwrtyyt

nqwrtyyt1#

不能模拟库、模块或包,只能模拟类型。
模仿任何类型的工作方式都是一样的:
1.创建一个接口,该接口覆盖了您从该类型使用的方法
1.将采用该类型的函数更改为采用该接口
1.创建一个满足接口的模拟类型以供测试使用
1.在生产代码中传递真实的类型,在测试代码中传递模拟类型

相关问题