[Java][Powermock] 是否可以在不模拟对象实例化的情况下模拟方法?

问题描述

所以我正在尝试为风暴螺栓创建测试用例。现在有一些对象在准备方法中被实例化。这些对象调用它们各自在其中声明的方法。我需要测试一下bolt中使用这些方法调用的几个方法的执行情况,我想拦截这些方法调用

假设prepare方法如下所示,

Cache<String,String> myCache;

@Override
public void prepare(Map map,TopologyContext topologyContext,OutputCollector outputCollector) {
    this.myCache = CacheBuilder.newBuilder().build();
}

我尝试测试的方法如下,

private void myMethod() {
    String response = myCache.getIfPresent("mykey");
}

我基本上是想拦截getIfPresent方法,而不必调用prepare方法

现在,我可以使用 whenNew 方法并实例化对象,然后模拟上述方法。但是,我想知道是否有一种方法可以直接让模拟过程知道当特定类型的类调用方法要做什么,而不必真正模拟实例化?

如果可能,寻求任何建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)