如何在使用云API时编写自动化测试?

时间:2017-11-04 23:26:08

标签: unit-testing testing automated-tests cloud tdd

我正在添加一个开源项目,在这种情况下使用一些Azure云功能,但同样的一般问题适用于任何云API。我想为我的代码编写测试,但测试结果依赖于我正在使用的云服务中发生的事情,为了实现这一点,我需要向云服务提供凭据。在私有项目中,我当然可以将我的云凭据添加到测试环境中,但对于公共/开源项目,我不能这样做。我可以在本地轻松测试,但是这个项目使用CI(和许多OSS项目一样),所以这不可能真的完成。

一种方法似乎是使用mock或类似的东西,但实际上似乎没有测试事情正在发生的事情,并且让我觉得这是实现100%覆盖率的一种无意义的方法。

是否有任何“虚拟测试云”环境可以通过旋转来创建与相关云服务相同的界面,但仅用于测试?这些如何处理副作用(有问题的代码会创建一个DNS条目,理想情况下会使用系统的解析器而不是另一个云调用来测试DNS条目的实际存在)?

人们如何进行此类测试?

1 个答案:

答案 0 :(得分:0)

我从spike solution开始学习如何传递所需的凭据。有了这些知识,我可以通过TDD acceptance test来调用简单的API并获得成功"结果

我从我的存储库中排除了凭据。相反,我包含一个带有说明的模板文件。

从那里,我下载到TDD发送请求和接收响应的单元测试。 我没有测试与任何服务的实际沟通。相反:

  • 测试请求的内容。
  • 创建回复并测试他们的处理方式。这使得测试各种错误条件变得非常容易。

一旦我获得了凭据,请求和响应,我就会使用我称之为spike test的内容来确认一切正常。基本上,这可以在我可以快速入侵的任何东西中使用非自动确认。