涉及时间触发的 azure 函数的验收测试功能

Acceptance testing functionality involving time-triggered azure function

我的验收测试基础架构使用规范运行 来创建模拟用户、调用我的网络服务并检查结果。这非常适合测试涉及用户交互的功能(调用 REST api、发送消息等)。

但是,在后端我还有一项功能涉及时间触发的 Azure 函数,该函数对某些 azure blob 执行一些操作并通过 eventhub 向用户发送消息。我如何验收测试涉及此 azure 功能的功能? - 由于此 azure 函数每 6 小时仅触发一次,并且不实用 运行 验收测试需要完整的 6 小时来测试此功能。

有人有处理过这种情况的经历吗?你有什么建议?

虽然门户网站使用管理员 API 调用函数(您可以使用它 -- 浏览器的 F12 工具可以向您展示它是如何工作的),但没有承诺 API 将保持不变。

另一种方法可能是分解您的函数,以允许您从计时器或测试调用您的 "real" 逻辑:

  1. 根据您的逻辑创建一个 QueueTrigger 函数。
  2. 创建一个将消息放入队列的 TimerTrigger。这还有失败重试的额外好处。
  3. 创建您自己的 HttpTrigger(默认情况下受密钥保护),您可以直接从测试中调用它。让这也将一条消息插入队列。

或者,您可以在帮助程序库中实现所有逻辑,而不是使用 QueueTrigger,并且仍然公开 #2 和 #3 中的函数——只是让它们成为直接调用帮助程序的精简包装器.