2016-11-18 116 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); 
相關問題