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"})
注解可以解决这种情况,
该注解不会初始化代码中的静态变量,静态块。因此,有必要的话需要手动注入这些静态块的初始化,否则会出现空指针异常