0
나는 안드로이드 코드를 테스트하기 위해 Robolectric을 사용하고 있으며, 그림자 메소드가없는 일부 메소드가 있기 때문에 실패한 테스트가 있다는 것을 알았습니다. 내 로직 코드에서robolectric을 사용하는 일부 메서드에서 그림자 메서드가없는 경우 어떻게해야합니까?
, 나는 다른 활동에서 비트 맵을 검색 :
Bitmap bitmap = getBitmapFromResult(data);
BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);
imageView.setImageDrawable(drawable);
그리고 나중에 다른 방법으로, 나는 imageView
에서 비트 맵을 얻는다면, 파일로 저장 :
BitmapDrawable drawable = (BitmapDrawable)imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
// save to file
bitmap.compress(...);
을
하지만 테스트 할 때 마지막 줄에서 NullPointerException이 발생합니다.
나는 코드에 디버깅 및 테스트 코드가 robolectric 실행하면,drawable
는이
ShadowBitmapDrawable
가
null
비트 맵을 포함입니다 발견했다. 따라서
drawable.getBitmap()
은 예외를 발생시키는
null
을 반환합니다. 내 테스트 코드가 실패
Robolectric.logMissingInvokedShadowMethods();
찾을 수 한 줄을 내가 원인을 생각 콘솔 :
No Shadow method found for BitmapDrawable.<init>(android.content.res.Resources, android.graphics.Bitmap)
내가 지금 무엇을 할 수
는 그럼 난 내 테스트 코드 로그인 가능? 섀도우 메서드를 추가하여 해결할 수 있으며이를 수행하는 방법은 무엇입니까?