2016-11-18 110 views
0

A类模拟受保护的方法,该方法是一个扩展的抽象类

public abstract class A{ 
    protected C _c = null; 

    public A(){ 
    } 

    public B(C c){ 
    _c=c; 
    } 
} 

B类

public class B extends A{ 

public B(C c){ 
    super(c); 
} 

public String dosomething(){ 
    this._c.dosomethingelse(); 
    return String s; 
} 

} 

我试图单元测试DoSomething的()的一部分。我遇到了一个问题,因为在this._c为空(抛出一个空指针异常在这一行)我是新来的mockito和单元测试不知道如何让它跳过这一步,以便它运行其他逻辑。我使用和的Mockito PowerMockito

+4

'公共B(C C){ _c = C; }'这不能在'A'中编译。你真正的代码是什么? –

+0

你是如何创建B类的对象的?你传递了一个有效的C对象吗? –

回答

0

假设你正在使用弹簧测试

在你的init尝试这样的事:

//Create instance of C (or get already existing one)  
C myC = new C(); 
ReflectionTestUtils.setField(this., "_c", myC);