c# - 如何在没有扩展/贡献的情况下自动模拟最小起订量中的容器(例如 IList)

标签 c# mocking moq automocking

我想知道是否可以自动模拟 最小起订量中的容器,无需向最小起订量库添加任何内容。 我在寻找一种干净的方法来自动模拟 IList 时遇到问题。

提前致谢!

最佳答案

问题的答案:否。

你真的需要模拟 IList 吗?

模拟通常用于:

  • 测试行为(通过预期)而不是结果。
  • 抽象掉复杂或重度的依赖关系。
  • 通过轻松返回所需值来简化您的测试代码。
  • 只测试你的被测类。

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

即:

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

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

关于c# - 如何在没有扩展/贡献的情况下自动模拟最小起订量中的容器(例如 IList),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614234/

相关文章:

c# - 模拟数据库事务?

c# - Moq 与 Autofac Func<Owned<IClass>>

c# - .Net 核心起订量 : An expression tree may not contain a call or invocation that uses optional arguments

c# - 使用 CsvHelper 强制 LF 行结尾

c# - 您如何处理用户偏好?

c# - 验证分离的签名(*.p7s 文件)和 X509Certificate2

c# - 如何在 C# 中将 sbyte[] 转换为 byte[]?

python - 将 side_effect 与模拟一起使用时未调用异常

node.js - Node JS : How can I create a fake tcp socket for testing servers

java - mockito ArrayList<String> 问题