У меня есть RecyclerView
с несколькими CardView
. Я установил фон для RelativeLayout
карточек в коде, подобном этому:
layout.setBackground(ContextCompat.getDrawable(mContext, R.drawable.item_background_grey));
Карты с различными рисунками выглядят так:
Я хочу проверить флажок с эспрессо-тестом.
Я получаю ViewInteraction
вот так:
ViewInteraction relativeLayout2 = onView(
allOf(withId(R.id.last_interaction_entry_layout),
childAtPosition(
childAtPosition(
withId(R.id.tab_last_interaction_recyclerview),
1),
0),
isDisplayed()));
Все работает хорошо, когда я проверяю текст внутри. Но когда я проверяю фон
relativeLayout2.check(matches(hasBackground(R.drawable.item_background_grey)));
Это выдает мне следующую ошибку:
androidx.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'has background with drawable ID: 2131165305' doesn't match the selected view.
Expected: has background with drawable ID: 2131165305
Got: "RelativeLayout{id=2131230886, res-name=last_interaction_entry_layout, visibility=VISIBLE, width=736, height=113, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.widget.FrameLayout$LayoutParams@2242239, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}"
Когда я пытаюсь проверить, есть ли any просмотр с таким фоном
onView(allOf(hasBackground(R.drawable.item_background)))
.check(matches(isDisplayed()));
Я получаю NoMatchingViewException
.
Кроме того, попытался проверить цвет непосредственно как предложенный здесь , здесь и там , получил
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.drawable.ColorDrawable.getColor()' on a null object reference