我想知道 Java 中的 模拟对象 是什么。我们为什么要创建它们以及它们的用途是什么?
最佳答案
Mock 对象是用于单元测试的东西。如果您有一个要测试其方法的对象,并且这些方法依赖于其他对象,则您创建依赖项的模拟,而不是该依赖项的实际实例。这允许您单独测试您的对象。
用于创建模拟对象的常见 Java 框架包括 JMock和 EasyMock .它们通常允许您创建可以定义其行为的模拟对象,因此当您在模拟对象上调用方法时,您可以准确地知道会发生什么(就返回值和副作用而言)。
例如,一个常见的用例可能是在 MVC 应用程序中,您有一个 DAO 层(数据访问对象)和一个执行业务逻辑的 Controller 。如果您想对 Controller 进行单元测试,并且 Controller 依赖于 DAO,您可以模拟 DAO,它将虚拟对象返回给您的 Controller 。
需要注意的重要一点是,mock 对象通常实现与它们正在模拟的对象相同的接口(interface) - 这允许您的代码通过接口(interface)类型处理它们,就好像它们是实物。
关于java - Java 中的模拟对象是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2128148/