我有一个 ASP.NET Web API 应用程序,支持 Azure Web 作业,其功能由 API Controller 添加到存储队列的消息触发。使用 OWIN 测试 Web API 非常简单,但如何测试 Web 作业?
我是否在测试运行器的内存中运行控制台应用程序?直接执行该函数(但这不是正确的集成测试)?这是一项连续的工作,因此应用程序不会退出。更糟糕的是,Azure Web 作业功能无效,因此没有可断言的输出。
最佳答案
无需在内存中运行控制台应用程序。您可以在集成测试的内存中运行 JobHost。
var host = new JobHost();
您可以使用host.Call() 或host.RunAndBlock()。您需要指向 Azure 存储帐户,因为 localhost 不支持 Webjobs。 这取决于您的函数正在执行的操作,但您可以手动将消息添加到队列、添加 blob 或其他任何内容。您可以通过查询 webjob 执行结果的存储等来进行断言。
关于azure - 如何集成测试Azure Web Jobs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299808/