C# 异步操作的moq测试不起作用
我试图用异步方法模拟测试,但我不知道如何设置moq测试来允许它C# 异步操作的moq测试不起作用,c#,unit-testing,asynchronous,moq,C#,Unit Testing,Asynchronous,Moq,我试图用异步方法模拟测试,但我不知道如何设置moq测试来允许它 noSQLProvider.Setup(x => x.CreateDocumentAsync(It.IsIn<Uri>(), It.IsAny<object>())).Returns(); noSQLProvider.Setup(x=>x.CreateDocumentAsync(It.IsIn(),It.IsAny()).Returns(); 错误告诉我: 用法:ResourceResponse x
noSQLProvider.Setup(x => x.CreateDocumentAsync(It.IsIn<Uri>(), It.IsAny<object>())).Returns();
noSQLProvider.Setup(x=>x.CreateDocumentAsync(It.IsIn(),It.IsAny()).Returns();
错误告诉我:
用法:ResourceResponse x=等待同步(…)
表达式树不能包含使用
可选参数
我猜你在用
在这种情况下,错误消息非常清楚地告诉您,该方法具有可选参数,您需要明确说明这些参数:
noSQLProvider.Setup(x => x.CreateDocumentAsync(It.IsIn<Uri>(),
It.IsAny<object>(),
It.IsAny<RequestOptions>(),
It.IsAny<bool>())).Returns();
noSQLProvider.Setup(x=>x.CreateDocumentAsync(It.IsIn()),
It.IsAny(),
It.IsAny(),
It.IsAny()).Returns();
这是一个与异步无关的限制
注意-我不确定
It.IsAny
比较如何处理null,因此您可能必须将It.IsAny()
替换为显式将该参数设置为null(默认值)。既然您在这里,您知道在.Returns()位中放什么吗?无论您希望模拟返回什么!你能给我一个电话吗example@AntPAfaikIt.IsAny()
可以很好地处理空值,至少对我来说是这样。@Callum在您的示例中,您正在模拟方法CreateDocumentSync
,因此您的.Returns
可以返回一个新文档。可能是