unit-testing - NSubstitute.Exceptions.CouldNotSetReturnDueToTypeMismatchException:无法为 IDisposable.Dispose 返回 Task`1 类型的值(预期类型为 Void)
问题描述
我有我想通过替换并返回用户列表来进行单元测试的代码:
var users = await _context.MyCollection.FindAsync(filter).Result.ToListAsync();
这是我使用 nsubstitute 进行的单元测试:
// Arrange
var user = new MyUsers{ Id = "1" };
var cursorSub = Substitute.For<IAsyncCursor<MyCollection>>();
cursorSub.MoveNext().Returns(true);
cursorSub.Current.Returns(MyUsers);
var filter = Substitute.For<FilterDefinition<MyCollection>>();
_context.MyCollection.FindAsync(filter).Returns(cursorSub);
// Act
await MyMethod.ExecuteAsync(useCaseRequest);
当我调试时:
_context.MyCollection.FindAsync(filter) 的替换实际上有效,因为它在示例中返回 cursorSub。但是,当它到达获得结果“.Result.ToListAsync();”的代码部分时 列表变为空。你能帮我替换我的代码吗?
解决方案
推荐阅读
- r - 如何在列中创建具有唯一值列表的列
- python - 将 python3.10 与 venv 一起使用,脚本失败:ModuleNotFoundError: No module named 'google'
- mysql - SQL LEFT JOIN 到由内部 SELECT 的结果确定的表
- reactjs - 如何仅在反应中分派异步操作一次?
- azure - 如何使用网络安全策略访问 Azure Key Vault?
- clickhouse - 将数据从 MYSQL 更新到 CH Cluster 问题
- javascript - Javascript 小书签可提取多条信息并使用该信息打开一个新选项卡进行搜索
- python - 机器学习数据清理:从熊猫数据框中删除值的单位
- python - 使用解析器拆分嵌套的 XML 字符串以获取字符串
- linux - 根据文件夹的日期和文件的日期将文件移动到linux中各自的文件夹