我正在为非活动类编写测试类:
public class SinglePhoto {
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
//---...
}
在我的测试类中,我需要访问上下文,但我不知道该怎么做:
public class SinglePhotoTest extends TestCase {
public void testDecodeSampledBitmapFromResource() throws Exception {
SinglePhoto sp = new SinglePhoto();
Context testContext = ??!
Bitmap bmp = sp.decodeSampledBitmapFromResource(testContext.getResources(), R.drawable.sample, 100, 100);
}
}
你能帮我吗?
由于
答案 0 :(得分:2)
而不是扩展TestCase扩展AndroidTestCase。并使用getContext()方法获取上下文。以下是AndroidTestCase文档:http://developer.android.com/reference/android/test/AndroidTestCase.html
答案 1 :(得分:0)
测试静态和其他通常"无法访问的最佳工具"事情可能是PowerMockito。关于如何使用PowerMockito没有简短的答案,所以我附上一个阅读链接: http://www.johnmullins.co/blog/2015/02/15/beginners-guide-to-using-mockito-and-powermockito-to-unit-test-java/
此外,扩展TestCase是一种旧式的JUnit 3方法,使用从JUnit 4中使用的@Test注释。