所有列表中的Espresso检查

时间:2016-05-24 11:58:01

标签: android android-espresso

$scope.time = "2015-06"; 是否有能力检查espresso中的所有观看次数,而不是从中获取一个观看次数,而是检查所有情况。

似乎listview用于返回与列表中只有一个列表项的交互。这不适合我的问题。

修改 实际上我找到了一个解决方案,解决了我的问题,但它看起来像是尖峰而不是好的。 我启动StealCount操作以从onData()获取项目数量因为我们不能从测试中做到这一点(因为我们在Inst线程内部)。之后,我使用ListView开始检查列表视图中的任何项目的数据。看起来像这样:

DataInteraction

但无论如何它对我来说似乎很难看。 还有其他能力吗?

1 个答案:

答案 0 :(得分:1)

我会以不同的方式做到这一点。

要查看列表视图,您只需要执行以下操作:

for (int i = 0; i < numItems; i++) {
    onData(anything())
            .inAdapterView(withId(R.id.listViewId)).atPosition(i)
            .check(matches(isDisplayed()));
}

而且,之前,要获取numItems变量,您只需通过ActivityTestRule访问列表适配器:

 int numItems = ((ListView) mActivityRule.getActivity().findViewById(R.id.listViewId)).getAdapter().getCount();

或者,如果它在片段内:

int numItems = ((ListView) mActivityRule.getActivity().getSupportFragmentManager().findFragmentById(R.id.fragmentId).getView().findViewById(R.id.listViewId)).getAdapter().getCount();

即使我理解你的代码,我认为这个代码更容易被理解。 唯一令人困惑的部分是访问适配器的方式。但是你可以创建其他中间变量以使其更具可读性,或者如果你愿意,可以创建一个函数来获得这个数字。