java - Java 中的模拟对象是什么?

标签 java unit-testing mocking

我想知道 Java 中的 模拟对象 是什么。我们为什么要创建它们以及它们的用途是什么?

最佳答案

Mock 对象是用于单元测试的东西。如果您有一个要测试其方法的对象,并且这些方法依赖于其他对象,则您创建依赖项的模拟,而不是该依赖项的实际实例。这允许您单独测试您的对象。

用于创建模拟对象的常见 Java 框架包括 JMockEasyMock .它们通常允许您创建可以定义其行为的模拟对象,因此当您在模拟对象上调用方法时,您可以准确地知道会发生什么(就返回值和副作用而言)。

例如,一个常见的用例可能是在 MVC 应用程序中,您有一个 DAO 层(数据访问对象)和一个执行业务逻辑的 Controller 。如果您想对 Controller 进行单元测试,并且 Controller 依赖于 DAO,您可以模拟 DAO,它将虚拟对象返回给您的 Controller 。

需要注意的重要一点是,mock 对象通常实现与它们正在模拟的对象相同的接口(interface) - 这允许您的代码通过接口(interface)类型处理它们,就好像它们是实物。

关于java - Java 中的模拟对象是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2128148/

相关文章:

java - 无法将 java.lang.String 类型的值转换为 int

c# - 通过 AutoFixture 使用私有(private) setter 测试数据填充公共(public)属性

java - EasyMock捕获: use getValue() outside of an IAnswer

Angular Jest 测试打开 MatDialog 的组件 - 打开不是函数

java - 使用 java 8 将 set 转换为 json 数组

java - Maven Cobertura : unit test failed but build success

c# - 我该如何设置(最小起订量设置)

c# - 如何设置基于参数值动态返回结果的模拟?

python - 使用模拟测试 python 中的函数

如果模式可用,java 会忽略 DTD 进行验证