问题描述
模拟的服务是:
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<>
以便匹配器匹配对象的形状而不是实际引用。