c# - 起订量持久函数 IDurableOrchestrationContext 时设置 CallActivityAsync 始终返回 null
问题描述
我有一个 Durable Orchestrator 函数,它从活动函数返回一个列表:
var returnList = await context.CallActivityAsync<List<MyObject>>("Activity", (input, context.InstanceId));
我的 xUnit 测试设置如下
var mock = new Mock<IDurableOrchestrationContext>();
var mockLogger = new Mock<Microsoft.Extensions.Logging.ILogger>();
var _returnList = new List<MyObject>();
mock.Setup(x=>x.CallActivityAsync<List<MyObject>("Activity",It.IsAny<Object>, string>>())).ReturnsAsync(_returnList);
var orch = new MyOrchestration();
await orc.Run(mock.Object,mockLogger.Object);
Durable Functions Orchestrator 函数总是在我希望它使用_returnList的地方返回 null - 感谢任何帮助。
注意:我使用的是 DI,所以我的编排和活动功能不是静态的。
解决方案
解决了。问题是线路
mock
.Setup(x=>x.CallActivityAsync<List<MyObject>("Activity",It.IsAny<Object>, string>>()))
.ReturnsAsync(_returnList);
应该是
mock
.Setup(x => x.CallActivityAsync<List<MyObject>>("Activity",It.IsAny<(List<MyObject>, string)>()))
.ReturnsAsync(_returnList);
推荐阅读
- javascript - 如何使用循环来测试变量是否存在
- javascript - React Hook useEffect Error missing dependency
- r - 包“汽车”不可用(对于 R 版本 3.4.4)
- javascript - 表单提交时未通过参数值
- html - 不应允许除空格以外的任何数字和特殊字符
- vue.js - VueJS:来自引导程序/jQuery 脚本的调用函数包含在组件的模板/布局中
- java - 如何修复无法解析符号'WriterException'
- html - 当我将我的 svg 放入窗口时,会出现左右边框
- html - 表格没有在 Reactjs 中相应地显示数据
- curl - 在 curl 响应正文的末尾自动添加换行符作为默认设置