Espresso не может найти представление: NoMatchingViewException

Вопрос: В моем приложении у меня есть два фрагмента, прикрепленных к активности. Каждый фрагмент содержит разные виды. Первый имеет два текстовых поля редактирования и две кнопки, в которых пользователь может войти или зарегистрироваться. Итак, теперь я хочу применить некоторые тесты эспрессо. @RunWith(AndroidJUnit4.class) public class LoginTest { @Rule public final ActivityRule main = new ActivityRule (MainActivity.class);

Вопрос:

В моем приложении у меня есть два фрагмента, прикрепленных к активности. Каждый фрагмент содержит разные виды.

Первый имеет два текстовых поля редактирования и две кнопки, в которых пользователь может войти или зарегистрироваться. Итак, теперь я хочу применить некоторые тесты эспрессо.

@RunWith(AndroidJUnit4.class) public class LoginTest { @Rule public final ActivityRule<MainActivity> main = new ActivityRule<> (MainActivity.class); @Test public void shouldBeAbleToFindViewsOfLoginScreen(){ onView(withText(R.id.user_name)).perform(click()); } }

Однако тест жалуется, что он не может найти представление с идентификатором R.id.user_name.

android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with string from resource id: <2131493050>[user_name] value: false

Я использую идентификатор corrent, как я также проверил у uiautomatorviewer.

Код xml для этого фрагмента

<?xml version=»1.0″ encoding=»utf-8″?> <RelativeLayout xmlns:android=»http://schemas.android.com/apk/res/android» xmlns:tools=»http://schemas.android.com/tools» android:layout_width=»match_parent» android:layout_height=»match_parent» android:id=»@+id/fragmentLogin» tools:context=»team.football.ael.MainActivity» android:background=»@drawable/background»> <include android:id=»@+id/toolbar» layout=»@layout/tool_lay» /> <LinearLayout android:padding=»20dp» android:background=»@drawable/roundedlayout» android:layout_centerHorizontal=»true» android:layout_centerVertical=»true» android:layout_width=»wrap_content» android:orientation=»vertical» android:layout_height=»wrap_content»> <ImageView android:src=»@mipmap/ael_logo» android:layout_width=»60dp» android:layout_height=»60dp» android:layout_gravity=»center_horizontal» /> <android.support.design.widget.TextInputLayout android:layout_width=»match_parent» android:layout_height=»wrap_content» android:layout_marginTop=»10dp»> <EditText android:id=»@+id/user_name» android:hint=»@string/login_username» android:textColor=»#fff» android:textColorHint=»#fff» android:layout_width=»250dp» android:layout_height=»wrap_content» /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:layout_width=»match_parent» android:layout_height=»wrap_content» android:layout_marginTop=»10dp»> <EditText android:id=»@+id/user_pass» android:textColorHint=»#fff» android:layout_width=»250dp» android:layout_height=»wrap_content» android:inputType=»textPassword» android:layout_marginTop=»20dp» android:hint=»κωδικός» android:textColor=»#fff» /> </android.support.design.widget.TextInputLayout> <LinearLayout android:layout_width=»match_parent» android:layout_height=»wrap_content»> <Button android:id=»@+id/loginButton» android:layout_gravity=»center_horizontal» android:text=»Εισοδος» android:layout_marginTop=»20dp» android:layout_width=»0dp» android:layout_weight=»1″ android:textColor=»#fff» android:background=»@drawable/roundbutton» android:layout_height=»wrap_content» android:onClick=»userLogin»/> <Button android:layout_marginTop=»20dp» android:layout_gravity=»center_horizontal» android:text=»Εγγραφη» android:textColor=»#fff» android:layout_width=»0dp» android:layout_marginLeft=»10dp» android:background=»@drawable/roundbutton» android:onClick=»userReg» android:layout_weight=»1″ android:layout_height=»wrap_content» /> </LinearLayout> <TextView android:textStyle=»bold|italic» android:textSize=»25sp» android:layout_gravity=»center_horizontal» android:text=»Ξέχασες τον κωδικό σου?» android:id=»@+id/forgotPass» android:textColor=»#fff» android:layout_width=»wrap_content» android:layout_height=»wrap_content» /> </LinearLayout>

Есть идеи?

Благодарю.

Лучший ответ:

Ответ

Изменить:

onView(withText(R.id.user_name)).perform(click());

с

onView(withId(R.id.user_name)).perform(click());

объяснение

  • withId() является совпадением для android:id
  • withText() является совпадением для android:text

Надеюсь, это поможет

Оцените статью
Добавить комментарий