首页 > 解决方案 > 模拟单元测试异步任务设置返回 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;
        }

标签: c#unit-testing

解决方案


您应该已经发布了理解问题、创建_mockCustomerService_fixture变量等所需的所有代码。话虽如此,我可能会猜测您正在创建 mockerService 而不是“冻结”它。对 _customerManager 的调用未使用您希望它使用的 _mockCustomerService。您可以在此处阅读有关此内容的AutoFixture Freeze


推荐阅读