unit-testing - Windows Azure 测试最佳实践(单元)

标签 unit-testing azure

在短时间内我将启动一个基于 Windows Azure 的项目。我想知道 Windows Azure 项目测试(持续集成(使用 TFS 构建服务器))有哪些经验? (最终使用 TDD)

我想知道的一些事情:

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

提前致谢!

最佳答案

为 Windows Azure 之外的应用程序编写单元测试的良好实践同样适用。如果您对实际测试的内容有外部依赖项,则应该模拟该依赖项并注入(inject)您的细粒度单元测试。

例如,当我使用 Windows Azure 存储队列时,我将有一个用于与队列本身交互的接口(interface),因此在使用队列服务的代码中,我可以使用该接口(interface)模拟子系统并使用依赖项注入(inject)注入(inject)模拟。这消除了在单元测试期间实际处理模拟器的必要性。在大多数情况下,使用队列的代码的实际具体实现只不过是一个非常薄的包装器。

我个人并不追求 100% 的测试覆盖率,因此我可能没有利用包装器的具体实现的直接单元测试。在许多情况下,我尝试进行集成测试,以测试这些包装器并测试系统的多个方面的协同工作。在某些情况下,我可以在模拟器中运行集成测试(例如,对于存储操作),但在某些情况下,只需访问 Windows Azure 环境即可运行集成测试(在使用 ACS 或服务总线的情况下)。

理想情况下,您希望拥有一组可运行的脚本,以在 Azure 中启动一组最少的测试服务器、部署您的解决方案并执行无法在本地完成的集成测试。然后获取结果并让脚本关闭所有内容(或者如果需要,可以选择让它运行)。然后运行集成测试套件,该套件经常使用这些脚本来检测问题,但您当然不需要每次 checkin 内容时都运行它们,除非您对始终运行测试环境感到满意。如果您同意在 Azure 中运行半永久性测试环境的成本,那么只需确保将脚本用于更新部署,而不是删除并重新部署,以稍微降低成本(节省的费用与更新部署的频率有关)部署发生)。

我认为这个问题是一个非常主观的问题,因为您可能会得到几种不同的意见。

关于unit-testing - Windows Azure 测试最佳实践(单元),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187023/

相关文章:

azure - 增加 Azure 数据资源管理器(ADX、Kusto)中摄取的最大文件大小

java - 如何编写junit测试用例来测试内存不足错误

c - 使用 native 单元测试项目在 Visual Studio 2017 中对 C 代码进行单元测试

javascript - 使用 Jasmine spies 测试函数的调用

Azure CLI 命令不返回变量的 GUID 值

.net - 为 Azure Function App 启用 VNet 集成时出现 "Http2ConnectionException: HTTP/2 error code ' PROTOCOL_ERROR ' (0x1)"错误

sql-server - Azure导入数据SQL

python - assertRaises 失败,即使可调用引发所需的异常(python,unittest)

unit-testing - NUnit 和 Log4Net 集成 : asserting based on the log

azure - 发布 Azure 函数