2017-01-02 6 views
1

私のアプリケーションで2つのナビゲーションビューを使用しています。2番目(右)はカスタムコンポーネント経由です。手動テスト中はうまく動作しますが、エスプレッソはテスト中にエスプレッソを認識しません。 2番目のNAVは不可視に保たれ、対応するメソッドのメソッドを作成します。Android:2番目のナビゲーションビューがエスプレッソで認識されない

私は同じappraochを使用して第1のナビゲーションビューをテストしようとした、それが正常に動作..

以下

は方法にのonCreate(バンドルsavedInstanceState)メソッド内のコード//

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
    layout="@layout/app_bar_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

    <android.support.design.widget.NavigationView 
    android:id="@+id/nav_left_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer" /> 

    <com.example.tt0401.NavigationViewRight 
    android:id="@+id/nav_right_view" 
    android:layout_width="wrap_content" 
    android:layout_height="600dp" 
    android:layout_marginTop="80dp" 
    android:layout_gravity="end" 
    android:fitsSystemWindows="true" 
    android:visibility="gone" 
    app:itemBackground="@drawable/nav_item_selector" 
    app:headerLayout="@layout/nav_header_right" 
    app:menu="@menu/activity_right_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

関連するコードスニペットとログです drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, navigationViewRight);

//エスプレッソ試験方法、それが見えるようにする

@Test 
public void navigationDrawer() throws Exception { 
fabAddClick(); 
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open(Gravity.END)); 
onView(withId(R.id.nav_right_view)).perform(NavigationViewActions.navigateTo(1000003)); 
} 

エスプレッソ故障ログ

01-02 12:25:58.228 18570-18585 /? I/TestRunner:android.support.test.espresso.PerformException: 'id:com.example.tt0401:id/nav_right_view'のビュー 'id'を持つメニュー項目をクリックするエラー。 android.support.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:80) (android.support.test.espresso.PerformException)の は、android.supportの にあります。 (android.support.test.espresso.ViewInteraction.doPerform()) ViewInteraction.java:115) android.support.test.espresso.ViewInteraction.perform(ViewInteraction.java:87) at com.example.tt0401.RecordActivity3Test.navigationDrawer(RecordActivity3Test.java:135) (ネイティブメソッド) at org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) アンドロイド。サポート.rule.ActivityTestRule $ ActivityStatement.evaluate(ActivityTestRule.java:270)org.junit.rules.RunRules.evaluate(RunRules.java:20)org.junit.runners.BlockJUnit4ClassRunner.runChildでorg.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) で(BlockJUnit4ClassRunnerで。 Javaの:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) でorg.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290で) org.junit.runners.ParentRunnerで$ 1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58) at org .junit.runners.ParentRunner $ 2.評価(ParentRunne r.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit。runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290) org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:71) .java:58) at org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner。 JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59) android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262) android.app.Instrumentation $ InstrumentationThread.run(Instrumentation.java:1932) 原因:java.lang.RuntimeException:ターゲットビューが以下の制約の1つ以上と一致しないため、アクションは実行されません。 (class:class androidから割り当て可能です。 support.design.widget.NavigationViewとviewには有効なvisibility = VISIBLEがあり、ビューの領域の少なくとも90%がユーザに表示されます) ターゲットビュー: "NavigationViewRight {id = 2131624075、res-name = nav_right_view、visibility = INVISIBLE 、width = 980、height = 2100、has-focus = false、has-focusable = false is-window-focus = true、is-clickable = false、is-enabled = true、is-focused = false、is-focusable = false、is-layout-requested = false、is-selected = false、root-is 」と表示されています。「ViewInteraction.java:138」と表示されています。 ) at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android 01-02 12:25: 58.228 18570-18585 /? I/TestRunner:-----最終例外----- 01-02 12:25:58.231 18570-18585 /? I/TestRunner:finished:navigationDrawer(com.example.tt0401.RecordActivity3Test) 01-02 12:25:58.250 18570-18585 /? I /テストランナーは:終了を実行します。1つのテスト、1が失敗し、0は

答えて

1

を無視が、これは目に見えない代わりに<com.example.tt0401.NavigationViewRight>

android:visibility="gone" 
内部で行っ作るためにしてみてください
関連する問題