当前位置: 首页 > 知识库问答 >
问题:

如何(自动)从实现接口的类的对象创建接口的模拟对象?

荆学民
2023-03-14

我有一个叫做InputInterface的接口,它有一些get方法。我还有一个复杂的gui类,它实现了InputInterface,现在因为它太复杂了,无法序列化整个类,而且它扩展并实现了更多的接口,所以我想创建一个类似于模拟对象的东西,它会创建一个类似于我的复杂类目前给出的答案的副本。

我想创建一个实现该接口的类,它将保存这些值,但后来我意识到这应该是EasyMock或其他模拟库的标准过程?这是怎么做到的?

提前谢谢。

共有2个答案

范浩荡
2023-03-14

Mockito提供了一种“间谍”机制来包装现有对象,从而能够观察方法调用并潜在地存根单个方法调用。然而,它没有提供一种机制来将第一个调用缓存到被监视的对象,然后连续返回这个值。

Mockito——参见“真实物体的间谍”一节

我通过谷歌搜索“Mockito spy cache”找到了这个。看来这可能会奏效。

Mockito缓存间谍

史逸春
2023-03-14

您实际上可以实例化一个接口,指定所需的方法。

MyInterface myInterface = new MyInterface() {
    public void requiredMethod(...) {
        //...
    }
};
 类似资料:
  • 我对类上的接口实现的理解是,接口类型引用实现接口的类的对象。 但是当我研究下面的代码片段在上面的代码中使用时… GetConnection(host,username,password)返回对对象的引用(类型为Connection),但DriverManager类中没有实现接口。谁能澄清我的这个疑问..?还是我漏掉了什么? 下面的代码段不能得到相同的东西 createStatement()应该返回

  • 我正在使用GraphQL工具来构建一个GraphQL模式,本质上我有这个结构 我有以下解析器 我让模式可执行 可选参数inheritResolversFromInterfaces:true应该允许我根据apollo graphql工具文档(链接)将公民身份解析程序从继承到。这样,当查询作者时,“示例公民身份”字符串将出现。 然而它没有,查询返回

  • 问题内容: 是否可以创建一个使用EasyMock实现多个接口的模拟对象? 例如,接口和接口? 在Rhino Mocks中,创建模拟对象时可以提供多个接口,但是EasyMock的方法仅采用一种类型。 是否可以通过EasyMock来实现此目的,而不必依靠创建扩展了和的临时接口,然后进行模拟的后备呢? 问题答案: EasyMock不支持此功能,因此您会陷入临时接口的后备状态。 顺便说一句,我闻到了一些代

  • 本文向大家介绍Kotlin 创建接口或者抽象类的匿名对象实例,包括了Kotlin 创建接口或者抽象类的匿名对象实例的使用技巧和注意事项,需要的朋友参考一下 一 ,定义接口和抽象类 二,创建对应的匿名对象 补充知识:android Kotlin 继承、派生、接口、构造方式,方法、属性重写 前言 kotlin 作为google官方android 开发语言,大势所趋,据传到2018底kotlin要全面替

  • 我遇到了一些Java代码: 在Java中,我第一次遇到一个构造函数或方法,它的参数是一个接口的“类型”。可以创建接口的对象吗?你能像普通物体一样使用它们吗? 在C语言中,我知道创建抽象类的对象是不可能的。

  • 问题内容: 当我创建一个说类Employee的模拟对象时。它不调用Employee对象的构造函数。我知道Mockito在内部使用CGLIb和反射,创建了一个代理类,将该类扩展为模拟。如果未调用employee的构造函数,那么如何创建employee类的模拟实例? 问题答案: Mockito使用CGLib生成类对象。但是,要实例化此类对象,它使用Objenesis http://objenesis.