5

我想知道是否可以在 MOQ 中自动模拟容器而不添加任何 MOQ 库。我在寻找一种干净的方式来自动模拟 IList 时遇到问题。

提前致谢!

4

1 回答 1

8

回答你的问题:没有。

你真的需要模拟 IList 吗?

模拟通常用于:

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

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

IE:

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

如果您指定为什么需要模拟容器,它可能有助于澄清您的问题。

于 2011-12-23T16:13:48.883 回答