我正在嘲笑一个异步方法,其中接口是参数,我想返回一个特定的对象。似乎方法调用没有与mock关联,因此总是返回null。
被嘲笑的方法:
public async Task<IDetail> Create(IDetail detail)
n async Mock Statement:
IDetail detailCreateResult = new Detail() {...}
mockDetailRespository.Setup(x => x.Create(It.IsAny<IDetail>())).ReturnsAsync(detailCreateResult);
调用方法:
var incomeTaxDetail = _detailMapper.Mapper.Map<IDetail> (incomeTaxDetailModel); // Returns an IDetail
var newDetail = await _detailRespository.Create(incomeTaxDetail);
newDetail始终设置为空值,而不是detailCreateResult。
这个模拟,使用另一个测试,工作正常:
mockDetailRespository.Setup(x => x.Get(It.IsAny<int>())).ReturnsAsync(detail);
任何人都能看到我做错了什么?如果需要更多信息,请告诉我。