繁体   English   中英

如何通过OnClick操作使用Espresso测试启动新的Activity?

[英]How to test launching new Activity with Espresso via OnClick action?

我在Fragment中有一个RecyclerView ,通过单击每个必须启动的活动( SampleActivity )。

我为此行为编写了一些UI测试:

 @Test
    public void listRecyclerView_ClickOnTapligh() {

        Espresso.registerIdlingResources(simpleListFragment.idlingResource);

        onView(withId(R.id.root_list))
          .perform(RecyclerViewActions.actionOnItemAtPosition(1, click()));

        Intents.init();
        intended(hasComponent(SampleActivity.class.getName()));
        Intents.release();
    }

但是我得到这个错误:

android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: Wanted to match 1 intents. Actually matched 0 intents.

IntentMatcher: has component: has component with: class name: is "com.sample.sdk.android.view.SamppleActivity" package name: an instance of java.lang.String short class name: an instance of java.lang.String

我也尝试过

intended(hasComponent(new ComponentName(getTargetContext(), TaplighActivity.class)));

但是我有同样的错误。

尝试以下解决方法:

    @Rule
    public ActivityTestRule<SampleActivity> activityRule 
        = new ActivityTestRule<>(SampleActivity.class, true, false);   

    @Test
    public void listRecyclerView_ClickOnTapligh() {
        Espresso.registerIdlingResources(simpleListFragment.idlingResource);
        onView(withId(R.id.root_list))
          .perform(RecyclerViewActions.actionOnItemAtPosition(1, click()));

        Intent intent = new Intent();
        intent.putExtra("some_key", "some_value");
        activityRule.launchActivity(intent);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM