异步模拟方法始终返回null

时间:2018-06-13 17:41:13

标签: c# unit-testing asynchronous moq

我正在嘲笑一个异步方法,其中接口是参数,我想返回一个特定的对象。似乎方法调用没有与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);

任何人都能看到我做错了什么?如果需要更多信息,请告诉我。

0 个答案:

没有答案