我想添加一个测试来检查当用户使用ViewPager滑动或点击TabView时,tabview的标题与片段的标题“同步”。
要开始玩它我会做一些更简单的事情,但测试会导致onView(...)行的无限循环。
以下是代码:
@RunWith(AndroidJUnit4.class)
public class MyActivityTest {
@Rule
public ActivityTestRule mActivityRule = new ActivityTestRule<>(
MyActivity.class);
@Test
@android.support.test.annotation.UiThreadTest
public void switchTab() {
((MyActivity)mActivityRule.getActivity()).addMyTab("Test 1", true);
onView(withText("Test 1"))
.perform(click())
.check(matches(withText("Test 1")));
}
这是我的XML:
...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/pager_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:tabGravity="fill"
app:tabMode="scrollable" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" />
</LinearLayout>
...
我正在向适配器添加tab,因为我正在使用:
mTabLayout.setupWithViewPager(mPager);
...
myAdapter.add(...);
答案 0 :(得分:0)
似乎主要的问题是@ android.support.test.annotation.UiThreadTest而不是@UiThread。
关于其余部分,我在GitHub上创建了一个小例子来测试TabLayout / ViewPager:https://github.com/MyWay/TabLayoutTest