一个模拟的服务调用返回 Null 而不是 false - 为什么?

问题描述

模拟的服务是:

public async Task<bool> AddAndSaveEventAsync(DomainEvent evt);

它正在被调用:

commandResult = await JSEventService.AddAndSaveEventAsync(new JobSeekerCreatedDomainEvent(jobSeeker));
        

我的 UnitTest 中的代码是:

var domainEvent = new JobSeekerCreatedDomainEvent(js);

JSDomainEventService.Setup(eventService => eventService.AddAndSaveEventAsync(domainEvent))
                    .Returns(Task.FromResult(true));

域事件在我调试时有效。它确实会进入调用 JSEventService 的代码所在的 CommandHandler。

我不知道为什么对 AddAndSaveEventAsync() 的调用返回 null。

解决方法

这是因为您将实际对象传递给模拟调用。

您应该使用 It.Is<>It.IsAny<> 以便匹配器匹配对象的形状而不是实际引用。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...