簡體   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