我有一个图像加载器类,我想测试一些静态方法。由于Mockito不支持静态方法,所以我切换到Power Mockito。然而我正在测试的静态方法有一个方法调用Power Mockito返回错误org.powermock.api.mockito.ClassNotPreparedException
Base64.encodeToString(byteArray, Base64.DEFAULT);
嘲笑这我使用mockStatic方法如下。
PowerMockito.mockStatic(Base64.class);
但Android工作室返回给我仍然返回错误如下。
org.powermock.api.mockito.ClassNotPreparedException:类 android.util.Base64不是测试制备。要准备此课程,请将 类添加到'@PrepareForTest'注释中。
以下是我的完整代码。
@RunWith(PowerMockRunner.class)
@PrepareForTest({Base64.class})
public class ImageLoaderTest {
@Test
public void testConvertBitmap(){
byte[] array = new byte[20];
PowerMockito.mockStatic(Base64.class);
PowerMockito.when(Base64.encodeToString(array, Base64.DEFAULT)).thenReturn("asdfghjkl");
Bitmap mockedBitmap= PowerMockito.mock(Bitmap.class);
String output = ImageLoaderUtils.convertBitmapToBase64(mockedBitmap);
assert (!output.isEmpty());
}
}
摇篮相依
testCompile 'junit:junit:4.12'
testCompile 'org.powermock:powermock:1.6.5'
testCompile 'org.powermock:powermock-module-junit4:1.6.5'
testCompile 'org.powermock:powermock-api-mockito:1.6.5'