Android 在浓缩咖啡中测试相对布局的内容

Android 在浓缩咖啡中测试相对布局的内容,android,android-studio,android-espresso,android-testing,hamcrest,Android,Android Studio,Android Espresso,Android Testing,Hamcrest,我的结构如下: +------------>LinearLayout{id=2131689635, res-name=ll_monthly_advance_payments_container, | +------------->LinearLayout{id=2131689636, res-name=ll_monthly_advance_payments_list_container, | +-------------->LeftRightListItemView{id

我的结构如下:

+------------>LinearLayout{id=2131689635, res-name=ll_monthly_advance_payments_container, 
|
+------------->LinearLayout{id=2131689636,  res-name=ll_monthly_advance_payments_list_container, 
|
+-------------->LeftRightListItemView{id=-1, 
|
+--------------->RelativeLayout{id=-1, 
|
+---------------->ScrollableTextView{id=2131689786, res-name=stv_left, text=Electricity
|
+---------------->AppCompatTextView{id=2131689787, res-name=tv_right, text=53.00 EUR
|
+-------------->LeftRightListItemView{id=-1, 
|
+--------------->RelativeLayout{id=-1, 
|
+---------------->ScrollableTextView{id=2131689786, res-name=stv_left, text=Water
|
+---------------->AppCompatTextView{id=2131689787, res-name=tv_right, text=251.00 EUR
|
+-------------->LeftRightListItemView{id=-1, 
|
+--------------->RelativeLayout{id=-1, 
|
+---------------->ScrollableTextView{id=2131689786, res-name=stv_left, text=Totals
|
+---------------->AppCompatTextView{id=2131689787, res-name=tv_right, text=304.00 EUR
我试图做的是测试作为一对,
stv\u left
tv\u right
是否包含正确的值。我可以使用以下脚本单独确认每一项:

onView(allOf(withId(R.id.tv_right), withText("53.00 EUR"), isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));

我不能确认他们是一对。我怎样才能解决这个问题

你有列表视图吗?然后可以使用DataInteraction而不是onView ViewInteraction

如果不可行,可以使用匹配器,例如:

onView(allOf(withId(R.id.stv_left), withText("Electricity"),
    hasSibling(allOf(withId(R.id.tv_right), withText("53.00 EUR"))),
    isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));
但是您可能希望像这样在
check()
中进行文本匹配(我还删除了一些对我来说似乎不必要的匹配程序):

两个人都为我工作

我偶然发现的另一种解决方案是:

onView(allOf(withText("Elecrtricity"),
    withText("53.00 EUR"),
    isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));
onView(allOf(withText("Elecrtricity"),
    withText("53.00 EUR"),
    isDescendantOfA(withId(R.id.ll_monthly_advance_payments_list_container))));