【发布时间】:2018-04-17 10:01:42
【问题描述】:
我正在添加一个开源项目,在这种情况下使用一些 Azure 云功能,但同样的一般问题适用于任何云 API。我想为我的代码编写测试,但测试结果依赖于我正在使用的云服务中发生的某些事情,为了实现这一点,我需要向云服务提供凭据。在私人项目中,我当然可以将我的云凭证添加到测试环境中,但对于公共/开源项目,我不能这样做。我可以很容易地在本地进行测试,但是这个项目使用 CI(就像许多 OSS 项目一样),所以这真的做不到。
一种方法似乎是使用mock 或类似的东西,但实际上这似乎并不能测试事情是否按照应有的方式发生,并且让我觉得实现 100% 覆盖率的方法几乎毫无意义。
是否有任何“虚拟测试云”环境可以旋转以创建与相关云服务相同的接口,但仅用于测试?这些如何处理副作用(有问题的代码会创建一个 DNS 条目,理想情况下会使用系统的解析器而不是另一个云调用来测试 DNS 条目的实际存在)?
人们如何进行这种测试?
【问题讨论】:
标签: unit-testing testing automated-tests cloud tdd