相关疑难解决方法(0)

Mockito如何只模拟超类方法的调用

我在一些测试中使用Mockito.

我有以下课程:

class BaseService {  
    public void save() {...}  
}

public Childservice extends BaseService {  
    public void save(){  
        //some code  
        super.save();
    }  
}   
Run Code Online (Sandbox Code Playgroud)

我想只模拟第二个调用(super.save)ChildService.第一个调用必须调用真正的方法.有没有办法做到这一点?

mockito

86
推荐指数
4
解决办法
10万
查看次数

PowerMock:来自父类的存根方法

我正在使用PowerMock,我想知道如何保持子类的所有行为,但是存根super调用可能被子进程覆盖.

说我有这个班:

public class A {
    public String someMethod() {
        return "I don't want to see this value";
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个子类:

public class B extends A {
    @Override
    public String someMethod() {
        return super.someMethod() + ", but I want to see this one";
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将呼叫存根到super.someMethod()

我试过了

@Test
public void test() {
    B spy = PowerMockito.spy(new B());
    PowerMockito.doReturn("value").when((A)spy).someMethod();

    assertEquals("value, but I want to see this one", spi.someMethod());
}
Run Code Online (Sandbox Code Playgroud)

java overriding stub super powermock

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×1

mockito ×1

overriding ×1

powermock ×1

stub ×1

super ×1