模拟服务调用返回 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<>
以便匹配器匹配对象的形状而不是实际参考。
模拟服务是:
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<>
以便匹配器匹配对象的形状而不是实际参考。