java - Mockito - 当我需要调用实现类时调用接口(interface)方法

标签 java mockito

我有一个界面

public abstract interface SomeSetRemote
  extends Remote
{

    public abstract someMethod getMedata(int paramInt)
        throws  RemoteException;
}

实现类

public class SomeSet
  extends Remote
{

    public someMethod getMedata(int paramInt)
        throws  RemoteException
    {
        System.Out.println(" Hi I am a class..........);
    }

}

问题是我正在测试的方法中有一个调用返回接口(interface),随后有一个方法调用不起作用,因为它正在接口(interface)上尝试它。

所以,方法调用是这样的

someObject.getSomeSet().getMedata()

someObject.getSomeSet() 返回接口(interface),因此不会调用实现类 getMedata

如何让Mockito调用实现类方法?

这是遗留代码,因此无法更改。

谢谢

最佳答案

如您所知,问题出在 someObject.getSomeSet() 返回接口(interface)处。然后尝试 mock 它:

Remote remoteObj = new SomeSet();
when(someObject.getSomeSet()).thenReturn(remoteObj);

从这里,您可以使用remoteObj进行调用。

关于java - Mockito - 当我需要调用实现类时调用接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41687806/

相关文章:

带有参数的私有(private)静态方法的Java反射

java - 如果我们从字符串数组列表中删除一个元素,记录不应被移动

java - Mockito——模拟数据库调用

java - 参数匹配器的使用无效!预期 0 个匹配器,记录 1 个

java - @ReplaceWithMock 不使用 Springmockito 注释进行模拟

java - 测试两个迭代器的相等性?

java - Jackson ObjectMapper DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT

java - 对象映射字段

java - 单元测试: how to pass my mock class in the read code

java - 无法使用 Mockito 或 PowerMockito 的反射对 Java 代码进行单元测试