为什么Moq看不到在.Select方法中调用此方法?

时间:2013-04-19 01:12:18

标签: c# moq

我创造了这个要点来描述正在发生的事情:

https://gist.github.com/IanRandall/5417410

简要说明:.Verify断言在存储库的第一个.Get()方法实现失败,因为Moq没有注意到正在调用映射器。

其他人见过这个?我错过了什么吗?

干杯:)

1 个答案:

答案 0 :(得分:5)

经典的IEnumerable概念错误。

您正在使用linq查询返回迭代器。在迭代它之前,迭代器实际上不会调用该函数。

如果您这样做(例如),您应该看到它有效,因为它强制迭代:

return results.Select(entity => _mapper.Transform(entity)).ToList();