小编use*_*481的帖子

在Mock对象上调用方法是调用实际方法而不是模拟实现

我的代码如下

public process() {
    extract();
    ...
}

private Obj extract() {
    Constructor const = new Constructor();
    Obj object = const.getOBJMethod("12345","c:/file/a.zip",null);
    return object;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用mockito测试方法过程.在我的测试课中,我编写了代码

Constructor mocckConst = mock(Constructor.class);
Obj mockObject = mock(Obj.class);
when(mocckConst .getOBJMethod("12345","c:/file/a.zip",null).thenReturn(mockObject);
Run Code Online (Sandbox Code Playgroud)

但是当调用extract方法执行testcase时,它将转向getOBJMethod()的实际实现.

构造函数类有另一个内部类.这会导致任何问题吗?任何人都可以告诉我这里出了什么问题和解决方案.

我想即兴创作我的流程方法.

public process(String base) {
    if("abc".equals(base)) {
       ---
    }
    else if("def".equals(base) {
    extract();
    ---
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,只有在def为def时才会调用extract().而且我不想将构造函数对象传递给process()方法然后是否有任何解决方案?

java unit-testing mockito

3
推荐指数
1
解决办法
4785
查看次数

标签 统计

java ×1

mockito ×1

unit-testing ×1