如何解决一个模拟的服务调用返回 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<>
以便匹配器匹配对象的形状而不是实际引用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。