unit-testing - 您如何为连接到授权帐户的库编写测试?

标签 unit-testing go gmail-api

我正在编写一个使用 gmail API 的库。几乎每个功能都需要连接到 gmail API 并在所有需要进行身份验证的情况下正常工作。

例如,这个库具有更改电子邮件标签的能力,因此为了测试它,我可以创建一个虚拟帐户、获取凭据并在收件箱中设置“测试电子邮件”、更改它们的标签并检查是否它们已正确更改,但第三方如何使用该 gmail 帐户执行单元测试?要使用它,他们需要访问该帐户,这将允许他们更改电子邮件标签(和其他内容)并使我的单元测试无效。

我的另一个想法是即时生成一批测试电子邮件,然后在测试完成后删除它们的所有痕迹。这样每个运行测试的第三方都只能使用他们自己的测试帐户。

我只是想知道是否有更标准的方法来做到这一点。

最佳答案

最佳实践是“模拟”或伪造所有外部依赖项。例如,gmail API 的所有调用都应该是针对伪造的接口(interface)。您只需测试 API 是否已使用正确的参数调用...有很多库可以进行模拟...

关于unit-testing - 您如何为连接到授权帐户的库编写测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45355483/

相关文章:

go - 如何在golang中将 "11aacc"之类的字符串转换为十六进制值[]byte ("\x11\xaa\cc")

javascript - Chrome 扩展程序和 gmail.js 阻止访问 google api

Python:如何为单元测试模拟kafka主题?

c# - 使用 MSTest 在测试方法中抛出异常

unit-testing - HibernateTestMixin在Grails 3中位于哪里?

unit-testing - 需要帮助查明中间件测试(Golang)中零引用错误的原因

go - 如何从接口(interface)获取 chan 值并在 reflect.Select(...) 中使用它

go - 在 Go 网络应用程序路由器中检查用户权限的最佳方法

ruby - 从谷歌开发者网站下载后,client_secret.json 为空

node.js - users.watch(在 gmail google api 中)如何收听通知?