对于Android应用程序,如何检查特定图像视图中使用的资源ID?
我正在为我公司的应用程序编写自动测试。这些测试使用了浓缩咖啡和机械通气的组合。其中的一些测试应该检查某些对于Android应用程序,如何检查特定图像视图中使用的资源ID?,android,android-espresso,android-drawable,android-testing,Android,Android Espresso,Android Drawable,Android Testing,我正在为我公司的应用程序编写自动测试。这些测试使用了浓缩咖啡和机械通气的组合。其中的一些测试应该检查某些ReactImageView元素是否正在显示特定的图像 我第一次尝试使用hasBackground(),如下所示: onView(...).check(matches(hasBackground(R.drawable...))); 但是,这将返回一个NoMatchingViewException 然后我尝试了Daniele Bottillo的matcher,如下所述: 但这也不起作用: ja
ReactImageView
元素是否正在显示特定的图像
我第一次尝试使用hasBackground()
,如下所示:
onView(...).check(matches(hasBackground(R.drawable...)));
但是,这将返回一个NoMatchingViewException
然后我尝试了Daniele Bottillo的matcher,如下所述:
但这也不起作用:
java.lang.ClassCastException: com.facebook.drawee.generic.RootDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
最后,我尝试了Frankie Sardo的解决方案:
但是,这会再次抛出一个
NoMatchingViewException
。我的点子快用完了。甚至可以检查哪些资源附加到图像视图吗?最简单的方法是使用库及其assertHasDrawable(R.id.,R.drawable.)
断言函数。甚至可以检查哪些资源附加到图像视图吗?--不太可能,因为您可以从资源以外的内容填充ImageView
。在您的情况下,您似乎正在使用一个中间库(来自Facebook),该库正在包装或以其他方式操纵您的基于资源的图像。是的,我们使用的是React Native。我知道使用标签存储资源信息是可能的,但通常不认为为QA目的修改生产代码是最佳做法。
java.lang.ClassCastException: com.facebook.drawee.generic.RootDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
onView(allOf(..., withImageDrawable(R.drawable...), isDisplayed())).check(matches(isDisplayed()));