我正在添加一个开源项目,在这种情况下使用一些Azure云功能,但同样的一般问题适用于任何云API。我想为我的代码编写测试,但测试结果依赖于我正在使用的云服务中发生的事情,为了实现这一点,我需要向云服务提供凭据。在私有项目中,我当然可以将我的云凭据添加到测试环境中,但对于公共/开源项目,我不能这样做。我可以在本地轻松测试,但是这个项目使用CI(和许多OSS项目一样),所以这不可能真的完成。
一种方法似乎是使用mock
或类似的东西,但实际上似乎没有测试事情正在发生的事情,并且让我觉得这是实现100%覆盖率的一种无意义的方法。
是否有任何“虚拟测试云”环境可以通过旋转来创建与相关云服务相同的界面,但仅用于测试?这些如何处理副作用(有问题的代码会创建一个DNS条目,理想情况下会使用系统的解析器而不是另一个云调用来测试DNS条目的实际存在)?
人们如何进行此类测试?
答案 0 :(得分:0)
我从spike solution开始学习如何传递所需的凭据。有了这些知识,我可以通过TDD acceptance test来调用简单的API并获得成功"结果
我从我的存储库中排除了凭据。相反,我包含一个带有说明的模板文件。
从那里,我下载到TDD发送请求和接收响应的单元测试。 我没有测试与任何服务的实际沟通。相反:
一旦我获得了凭据,请求和响应,我就会使用我称之为spike test的内容来确认一切正常。基本上,这可以在我可以快速入侵的任何东西中使用非自动确认。