使用异步操作进行Moq测试是行不通的

本文关键字:测试 行不通 Moq 异步操作 | 更新日期: 2023-09-27 17:54:42

我正在尝试用异步方法模拟测试,但我不知道如何设置moq测试以允许它。

noSQLProvider.Setup(x => x.CreateDocumentAsync(It.IsIn<Uri>(), It.IsAny<object>())).Returns();

错误告诉我:

使用:resourcerresponse x = await CreatDocumentAsync(…);

表达式树不得包含使用可选参数。

使用异步操作进行Moq测试是行不通的

我猜你在用这个?

在这种情况下,错误信息非常清楚地告诉你,该方法有可选参数,你需要显式地使用它们:

noSQLProvider.Setup(x => x.CreateDocumentAsync(It.IsIn<Uri>(),
                                               It.IsAny<object>(),
                                               It.IsAny<RequestOptions>(),
                                               It.IsAny<bool>())).Returns();

这个限制与async无关。

NB -我不确定It.IsAny比较对null的行为如何,所以你可能必须用显式设置该参数为null(这是默认值)的东西替换It.IsAny<RequestOptions>()