我正在尝试对基本Azure功能进行单元测试。函数的Run方法需要一个TraceWriter参数; TraceWriter是一个抽象类,我在模拟这种依赖关系的文档方面找不到太多。
这是我尝试测试的方法的签名:
public static void Run(string myQueueItem, TraceWriter log)
非常感谢有关模拟TraceWriter和/或Azure功能单元测试策略的任何见解。
答案 0 :(得分:6)
Azure Functions现在可以支持根据此GitHub线程使用ILogger: https://github.com/Azure/Azure-Functions/issues/293
我的建议是,您使用VS2017 Preview支持的新工具和预编译功能,以便您提高功能的可测试性。您可以在此处开始使用Azure功能的新工具:
Donna Malayeri发表了一篇精彩文章,解释了如何在C#中使用预编译函数: https://blogs.msdn.microsoft.com/appserviceteam/2017/03/16/publishing-a-net-class-library-as-a-function-app/
这将允许您创建一个使用Interface而不是具体对象的Function。答案有点长,但这里有一个类似的帖子,答案很好:
Azure Function logging using TraceWriter in external library
答案 1 :(得分:0)
使用起订量;
...
...
var log = new Mock(TraceLevel.Info).Object;
简单!