Moq持久性函数IDurableOrchestrationContext当设置CallActivityAsync时总是返回null。

3
我有一个持久性编排器函数,从活动函数中返回列表:
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 Function总是返回null,但我希望它使用_returnList。感谢您的任何帮助。
注意:我正在使用DI,因此我的编排和活动函数不是静态的。

这个显示的设置似乎有些不对劲。 - Nkosi
你的意思是什么 - 你认为哪里有问题? - Jody
请重新检查所示设置中使用的语法。那样能编译吗? - Nkosi
1个回答

4
解决了。问题出在那一行。
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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接