JUnit:如何获取非活动testCase的上下文?

时间:2015-08-02 16:33:28

标签: java android junit

我正在为非活动类编写测试类:

    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);

    }
}

你能帮我吗?

由于

2 个答案:

答案 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注释。