Iam尝试将资源图像转换为位图,以便在android中的Instrumentation测试中对其进行测试。最初我把它作为常规测试扩展测试用例。我的问题是这个
protected void setUp()
{
testbmap=BitmapFactory.decodeResource(getInstrumentation().
getContext().getResources(), R.drawable.ic_launcher);
}
然后我测试位图不为空但测试失败。
public void testnotnull()
{
assertNotNull(testbmap);
}
所以我在这里做错了我认为它可能与decoderecource()中的第一个param有关,也许我没有指向正确的资源?我也尝试了getApplicationContext.getResources()方法,但我对此不太确定。 有谁可以帮助我?
答案 0 :(得分:2)
我解决了这个问题,更改了#getContext()
,它会将检测程序包的上下文返回到#getTargetContext()
,这将返回目标应用程序的上下文。
返回正在检测的目标应用程序的上下文。注意 这通常不同于仪器的上下文 代码,因为仪器代码经常生活是不同的 包比它运行的应用程序包。看到 getContext用于检索检测代码的上下文。
Kotlin方法:
@Test
fun bitmapIsNotNull() {
val context = InstrumentationRegistry.getInstrumentation().targetContext
val bitmap = BitmapFactory.decodeResource(context.resources, R.raw.any_image)
Assert.assertNotNull(bitmap)
}