UDETest 與MockUtils

對於其中有引用其它元件的對象類別,測試時可繼承UDETest。 測試啟動時,會自動建立測試對象的實例物件(this.target),其中的Field若原先為NULL且定義為介面,將自動注入MOCK物件,這些MOCK物件若有GET-METHOD回傳其它元件介面,同樣也會回傳MOCK物件。 同一次測試中,同樣類別的MOCK物件預設會是signleton同一個,可以用MockUtils.getMock() 取得。

public class CodeTableManagerImplTest extends UdeTest<CodeTableManagerImpl> {
    public CodeTableManagerImplTest() {
        super(CodeTableManagerImpl.class);
    }
    @Test
    public final void testReloadAll() {
        this.target.reloadAll();
        verify(this.p10).initConfig();
        verify(this.p20).initConfig();
    }
}

若要修改final欄位進行測試,可以使用MockUtils的writeStaticFinal、writeFinal。 若未使用UdeTest,在teadDown應手動呼叫 MockUtils . resetMocks() 還原context,包括重設mock物件資訊、覆寫static欄位原始值。

results matching ""

    No results matching ""