我正在添加一个开源项目,该项目在本例中使用了一些Azure云功能,但同样的一般问题也适用于任何云API。我想为我的代码编写测试,但测试的结果依赖于我正在使用的云服务中发生的一些事情,为了实现这一点,我需要向云服务提供凭据。在私有项目中,我当然可以将我的云凭据添加到测试环境中,但对于公共/开源项目,我不能这样做。我可以很容易地在本地测试,但这个项目使用CI (就像许多OSS项目一样),所以这不能真正做到。
一种方法似乎是使用mock
或类似的方法,但这实际上并没有测试事情是否按预期发生,我认为这是一种几乎没有意义的方法来实现100%的覆盖率。
是否有任何“虚拟测试云”环境可以旋转,以创建与所讨论的云服务相同的接口,但仅用于测试?这些如何处理副作用(有问题的代码创建一个DNS条目,理想情况下使用系统的解析器而不是另一个云调用来测试DNS条目的实际存在)?
人们是如何做这种测试的?
发布于 2017-11-10 14:22:29
我从一个spike solution开始学习如何传递所需的凭据。有了这些知识,我可以测试一个acceptance test来调用一个简单的API,并得到一个“成功”的结果。
我从我的存储库中排除了凭据。取而代之的是,我包含了一个带有说明的模板文件。
从那里,我下拉到TDD发送请求和接收响应的单元测试。我不测试与任何服务的实际通信。相反,:
一旦我对凭证、请求和响应进行了TDD,我就会使用我称之为spike test的东西来确认所有东西实际上都在工作。基本上,这使用非自动化的确认,在任何我可以快速黑在一起。
https://stackoverflow.com/questions/47116646
复制相似问题