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

A Mock'ed service call returning Null instead of false - why?

模拟服务是:

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

呼叫者:

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

我的单元测试中的代码是:

var domainEvent = new JobSeekerCreatedDomainEvent(js);

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

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

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

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

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