对于PowerMock,打桩的时候应该导致了Java的Ext工具类失效了,所以如果使用到了AES,Base64相关的类和方法,会导致llt
的相关逻辑不能正常工作,因此,需要加入该注解来取消对相关Package的mock。
PowerMockito.doNothing().when(executor).start(anyInt()); //给普通方法打桩
PowerMockito.doReturn(configuration).when(HBaseConfiguration.class, "create"); //给静态方法打桩
static{
System.loadlibrary("xxxx");
}
//如果在不同的测试类中,会导致出现native library has been loaded in another class loader
此时,使用@SuppressStaticInitializationFor({"org.apache.hadoop.hbase.ipc.DMClockRpcExecutor"})
注解可以解决这种情况,
该注解不会初始化代码中的静态变量,静态块。因此,有必要的话需要手动注入这些静态块的初始化,否则会出现空指针异常
原文:https://www.cnblogs.com/seancheer/p/12582658.html