我的验收测试基础设施使用specrun来创建模拟用户,调用我的Web服务并检查结果。这适用于测试涉及用户交互(调用 REST api、发送消息等(的功能。
但是,在后端,我还有一个功能,它涉及时间触发的 Azure 函数,该函数对某些 Azure blob 执行一些操作,并通过事件中心向用户发送消息。如何接受涉及此 azure 函数的验收测试功能?- 由于此 Azure 函数每 6 小时仅触发一次,并且运行整整 6 小时的验收测试来测试此功能是不切实际的。
有人有处理这种情况的经验吗?你有什么建议?
虽然门户使用了一个用于调用函数的管理 API(您可以使用它 - 浏览器的 F12 工具可以向您展示它的工作原理(,但没有承诺 API 将保持不变。
另一种方法可能是分解你的函数,允许你从计时器或测试调用你的"真实"逻辑:
- 使用您的逻辑创建一个 QueueTrigger 函数。
- 创建一个将消息放入队列的计时器触发器。这还具有失败重试的额外好处。
- 创建您自己的 HttpTrigger(默认情况下使用密钥保护(,您可以直接从测试中调用该触发器。这也将消息粘贴到队列中。
或者,您可以让所有逻辑在帮助程序库中实现,并且仍然公开来自 #2 和 #3 的函数,而不是使用 QueueTrigger,只需让它们成为直接调用帮助程序的精简包装器即可。