c# - 模拟单元测试异步任务设置返回 null
问题描述
我有一个 TestMethod 异步任务,它正在使用 ReturnsAsync 模拟服务设置,但由于某种原因,结果一直返回 null。
[TestMethod]
public async Task GetCustomerAsync_Returns_CustomerResults()
{
var customerResults = _fixture.Create<CustomerResults>();
_mockCustomerService.Setup(s => s.GetCustomerAsync(1)).ReturnsAsync(customerResults);
var result = await _customerManager.GetCustomerDetails(1);
Asset.IsNotNull(result);
}
public async Task<CustomerResults> GetCustomerDetails(int id)
{
var results = await _customerService.GetCustomerAsync(id);
return results;
}
解决方案
您应该已经发布了理解问题、创建_mockCustomerService
和_fixture
变量等所需的所有代码。话虽如此,我可能会猜测您正在创建 mockerService 而不是“冻结”它。对 _customerManager 的调用未使用您希望它使用的 _mockCustomerService。您可以在此处阅读有关此内容的AutoFixture Freeze
推荐阅读
- solidity - Solidity 中的修饰符和访问值
- javascript - 如何过滤一个 JS 对象并按日期排序?
- python - 替换在 python 代码中的 R 中长度为零
- php - 如何使用 PHP-FFMpeg 打开远程视频?
- javascript - 使用 mysql2 数据库注册和登录 javascript api 时遇到错误
- javascript - Chrome 扩展:browser.runtime API 导致“浏览器未定义”错误
- asp.net-mvc - 何时在控制器或模型变量上使用 Items 有意义
- authentication - 我可以使用 AWS Cognito 中的 userSub 作为主键吗?
- amazon-cloudformation - AWS Elasticsearch 通过 CloudFormation 启用“所有流量的 HTTPS”
- java - 在 Java 中基于 MS Access 中的日期执行搜索