PowerMockito的一些注意事項
目錄
1 注解@PowerMockIgnore({"javax.crypto.*"})
對於PowerMock,打樁的時候應該導致了Java的Ext工具類失效了,所以如果使用到了AES,Base64相關的類和方法,會導致llt
的相關邏輯不能正常工作,因此,需要加入該注解來取消對相關Package的mock。
2 Powermockito給普通對象的普通方法進行doNothing打樁和給靜態方法打樁
PowerMockito.doNothing().when(executor).start(anyInt()); //給普通方法打樁
PowerMockito.doReturn(configuration).when(HBaseConfiguration.class, "create"); //給靜態方法打樁
3 Powermockito為了避免因為某些靜態塊初始化導致的錯誤,比如:
static{
System.loadlibrary("xxxx");
}
//如果在不同的測試類中,會導致出現native library has been loaded in another class loader
此時,使用@SuppressStaticInitializationFor({"org.apache.hadoop.hbase.ipc.DMClockRpcExecutor"})
注解可以解決這種情況,
該注解不會初始化代碼中的靜態變量,靜態塊。因此,有必要的話需要手動注入這些靜態塊的初始化,否則會出現空指針異常