最佳实践:对Windows Azure进行单元测试

9

在短时间内,我将开始一个基于Windows Azure的项目。我想知道在测试Windows Azure项目方面的经验如何(使用TFS构建服务器进行持续集成(可能使用TDD))?

一些问题:

  • 您是否使用模拟(在自己编写的包装类中)?
  • 您是否使用存储仿真器?
  • 您是否将服务部署到Azure并从构建服务器运行测试到云端?(费用如何)?

提前感谢!

1个回答

4
写单元测试的好方法适用于Windows Azure之外的应用程序。如果你要测试的内容依赖于外部因素,那么就需要模拟并注入这些因素以进行粒度化的单元测试。
例如,当我使用Windows Azure存储队列时,我会有一个接口来与队列交互,所以在消费队列服务的代码中,我可以使用该接口模拟子系统,并使用依赖项注入来注入模拟。这将消除在单元测试期间处理仿真器的必要性。就大部分情况而言,处理队列的实际具体实现不过是一个非常薄的包装。
我个人不追求100%的测试覆盖率,因此可能没有直接利用包装的具体实现进行的单元测试。在许多情况下,我尝试编写集成测试,可以运行这些包装器并同时运行多个方面的系统。在某些情况下,我可以在仿真器中运行集成测试(例如存储操作),但在某些情况下,它们必须在访问Windows Azure环境的情况下运行(在使用ACS或Service Bus的情况下)。
理想情况下,您希望拥有一组脚本,可以在Azure中启动一组最小的测试服务器,部署解决方案并练习无法在本地完成的集成测试。然后获取该结果,并让脚本关闭所有内容(或根据需要选择保留)。然后经常运行利用这些脚本的集成测试套件,以便检测问题,但除非您希望一直运行测试环境,否则无需每次检查某些内容时都运行它们。如果您同意在Azure中运行半永久测试环境的成本,则确保进行更新部署而不是删除和重新部署,以降低一些成本(节省的金额将与部署发生的频率有关)。
我认为这个问题是一个非常主观的问题,因为你可能会得到几种不同的观点。

我想要几个不同的意见,这样我就可以看到有哪些不同的选项和最佳实践(这可能因答案而异)。 - mrtentje

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接