如何在MOQ中自动模拟容器(例如IList)而不使用extensions / contrib

时间:2011-12-23 09:24:07

标签: c# mocking moq automocking

我想知道是否可以自动模拟 MOQ中的容器,不添加任何MOQ库。 我在找到一个自动插入IList的简洁方法时遇到了问题。

提前致谢!

1 个答案:

答案 0 :(得分:7)

回答您的问题:否。

你真的需要模仿IList吗?

模拟通常用于:

  • 测试行为(通过期望)而不是结果。
  • 抽象出复杂或重的依赖关系。
  • 通过轻松返回所需的值来简化测试代码。
  • 仅测试您的课程。

例如,您可以模拟访问数据库的存储库。通常,您的测试不会模拟列表,而是使用模拟对象返回包含测试所需数据的列表。

即:

var aList = new List<int>() { 1, 2, 3, 4, 5 };
var mockService = new Mock<IMyService>();
mockService.Setup(mock => mock.GetFooList()).Returns(aList);

如果您指定需要模拟容器的原因,可能有助于澄清您的问题。

相关问题