我创建了一个简单的 azure 逻辑应用。
- 第 1 步 - http 请求
- 步骤 2 - XML 转换
- 为 XML 文件添加了映射文件 xslt
- 步骤 3 - 将转换 XML 数据发送到服务总线队列。
- 步骤 4 - 请求响应
我想使用 msunit 项目创建上述逻辑应用单元测试用例。我是逻辑应用的新手。
我在仔细研究逻辑应用时对这个主题进行了相当多的研究......AFAIK,无论是否将逻辑应用部署到 Azure,都无法对特定步骤进行单元测试,抱歉。
在最好的情况下,您可以进行端到端/集成测试。这需要将应用部署到 Azure 云中,因为你没有任何其他方法可以在本地(在桌面或其他本地计算机上)使逻辑应用的 JSON 定义可执行。
现在我们谈论的是端到端测试,因此有一个问题,如何确保测试不会弄乱生产数据,对吗?这反过来又引发了两个后续问题之一:
- 如何为 Azure 逻辑应用的环境/阶段建模? 或
- 如何编写测试以保证生产数据完好无损,并且在生产中也不会生成垃圾数据?
(提示:尽管这两个问题都是可以解决的,但这些^问题都没有简单易用的答案。我个人决定根本不走那条路)。
给你一些希望。如果你同意从纯基于逻辑应用的解决方案中分道扬镳,我建议将自定义逻辑实现为 Azure Functions。这些函数只是普通的JavaScript/C #/语言选择代码,您实际上可以在本地进行单元测试。这些函数也很容易从逻辑应用调用。
逻辑应用作为平台可以很好地用作业务流程平台。它支持多个触发器;允许控制应用程序中的并行度;它允许您配置重试和超时逻辑;等等。当涉及到与表达处理连接器的应用程序逻辑相关的所有内容时,它一点也不好。
相关来源:
-
!!包含一些不错想法的幻灯片:使用逻辑应用和 Specflow 进行自动化测试
-
StackOverflow:是否可以对 Azure 逻辑应用进行自动回归/集成测试?
-
无服务器应用程序是否可测试? – Azure 逻辑应用
前面的响应与只能部署到 Azure 环境中的消耗型逻辑应用相关。较新的标准逻辑应用可以在 Azure 中运行,但它们也可以在开发环境中本地部署,在函数运行时上运行。这意味着可以采用与使用 C# 函数相同的方式编写逻辑应用单元测试,并在本地运行测试。还可以在 Azure DevOps 或 GitHub 操作中运行相同的测试作为 CI/CD 管道的一部分。
标准逻辑应用不包含任何单元测试框架来帮助创建测试,但请查看填补此空白的 LogicAppUnit 测试框架。