我有一个ScrollView,它托管一个LinearLayout,在运行时然后托管一堆LinearLayout(在之前的LinearLayout内)。
我想运行一个espresso测试,滚动到屏幕外的视图(滚动视图的下方),点击该视频将我带到下一个活动。在运行espresso测试时,我已尝试使用ViewActions.scrollTo来实现它,但它只是给了我一个未找到资源的例外。
但是,如果我在测试的点击部分之前放置断点,请手动滚动以便查看视图,然后运行“点击”按钮。测试的一部分,测试运行得非常好。
有谁知道为什么卷轴不起作用?
我将LinearLayouts id设置为其中一个数据字段,因此我知道ID。
测试代码:
@Test
public void ensureScoreCorrect() {
int manUtdView = Math.abs("Man Utd".hashCode());
String score = getScore();
Log.d("Hashcode:", " " + Math.abs("Man Utd".hashCode()));
onView(withId(manUtdView)).perform(ViewActions.scrollTo());
onView(withId(manUtdView)).perform(click());
onView(withId(R.id.details_score))
.check(matches(withText(score)));
}
查看:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/all_matches_fragment"
android:orientation="vertical"
android:gravity="center"
android:paddingBottom="90dp">
</LinearLayout>
谢谢!