我有一個圖像加載器類,我想測試一些靜態方法。由於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'