【发布时间】:2015-02-11 13:08:37
【问题描述】:
我的应用中有三个活动
- 登录活动
- 主要活动
- 详细活动
我想用 espresso 来测试一系列事件:点击登录活动上的登录按钮,打开主活动,然后单击主活动中的一个列表项,打开详细活动,然后单击另一个按钮在详细活动中。我首先创建了这个简单的测试,以获取对列表视图的引用:
public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity> {
public LoginActivityTest() {
super(LoginActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
getActivity();
}
public void testSequence() throws Exception {
// Login
onView(withId(R.id.button_log_in)).perform(click());
// Check if MainActivity is loaded
onView(withId(R.id.container)).check(matches(isDisplayed()));
// Check if Fragment is loaded
onView(withId(R.id.list)).check(matches(isDisplayed()));
}
}
在 mainActivity onCreate() 方法上,我加载了这样的片段:
getFragmentManager().beginTransaction()
.add(R.id.container, mListFragment)
.commit();
ListFragment 片段有一个列表 (R.id.list),但测试仍然失败并显示 NoMatchingViewException:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.tests.android.development:id/list
我做错了什么?
【问题讨论】:
-
你找到解决办法了吗?
-
如果您仍在寻求帮助,请出示与此问题相关的
onCreate()的完整代码。特别是,显示mListFragment的声明和初始化。同时显示ListFragment的 XML 布局。
标签: java android android-fragments functional-testing android-espresso