Я работаю на примере Android и Power Mockito. В этом примере я изо всех сил пытаюсь заставить тестовый пример работать и получаю следующую ошибку
public class UtilHelper {
public static final Gson customGson = new GsonBuilder().registerTypeHierarchyAdapter(byte[].class,
new ByteArrayToBase64TypeAdapter()).create();
private static class ByteArrayToBase64TypeAdapter implements JsonSerializer<byte[]>, JsonDeserializer<byte[]> {
public ByteArrayToBase64TypeAdapter(){
}
public byte[] deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
return Base64.decode(json.getAsString(), Base64.NO_WRAP);
}
public JsonElement serialize(byte[] src, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(Base64.encodeToString(src, Base64.NO_WRAP));
}
}
}
Ошибка:
org.powermock.reflect.exceptions.ConstructorNotFoundException: Failed to lookup constructor with parameter types [ null ] in class com.example.UtilHelper.
Тестовый пример, который я разработал
@RunWith(PowerMockRunner.class)
@PrepareForTest({UtilHelper.class})
public class GsonHelperTest {
@Test
public void testByteArrayToBase64TypeAdapter() throws Exception {
UtilHelper UtilHelper = new UtilHelper();
PowerMockito.mockStatic(UtilHelper.class);
UtilHelper spy = PowerMockito.spy(UtilHelper);
PowerMockito.whenNew(UtilHelper.class)
.withParameterTypes(Mockito.any())
.withArguments(Mockito.isA(UtilHelper.class)).thenReturn(UtilHelper);
Class clazz = Whitebox.getInnerClassType(UtilHelper.class, "ByteArrayToBase64TypeAdapter");
Constructor constructor = Whitebox.getConstructor(clazz, UtilHelper.class);
JsonSerializer innerClassSer = (JsonSerializer) constructor.newInstance(new UtilHelper());
JsonDeserializer innerClassDes = (JsonDeserializer) constructor.newInstance(new UtilHelper());
innerClassDes.deserialize(Mockito.any(), Mockito.any(), Mockito.any());
}
}