验收测试功能涉及时间触发的天蓝色功能

时间:2018-01-10 18:08:21

标签: c# azure azure-functions acceptance-testing specrun

我的验收测试基础架构使用specrun来创建模拟用户,调用我的Web服务并检查结果。这很适合测试涉及用户交互的功能(调用REST api,发送消息等)。

但是,在后端我还有一个功能,它涉及一个时间触发的Azure功能,它对某些azure blob执行某些操作,并通过eventhub向用户发送消息。如何验证涉及此天蓝色功能的测试功能? - 因为这个azure功能每6小时只触发一次,并且在整个6小时内完成验收测试以测试此功能是不实际的。

任何人都有处理这种情况的经验吗?你会建议什么?

1 个答案:

答案 0 :(得分:1)

虽然门户网站使用管理员API来调用功能(并且您可以使用它 - 浏览器的F12工具可以向您展示它是如何工作的),但没有承诺API将保留同样的进展。

另一种方法可能是打破你的功能,让你可以打电话给你真实的"来自计时器或测试的逻辑:

  1. 使用您的逻辑创建QueueTrigger函数。
  2. 创建一个将消息放入队列的TimerTrigger。这也有失败重试的额外好处。
  3. 创建您自己的HttpTrigger(默认情况下使用密钥保护),您可以直接从测试中调用它。这也会将消息粘贴到队列中。
  4. 或者,不是使用QueueTrigger,而是可以在辅助库中实现所有逻辑,并且仍然公开#2和#3中的函数 - 只需让它们成为直接调用帮助程序的瘦包装器。 / p>