البرمجة

اختبار الأخطاء في حقول EditText باستخدام Espresso

بالطبع، لديك القدرة على اختبار إذا كانت الرسالة الخطأ معروضة بواسطة Espresso في تطبيق Android الخاص بك. يمكنك تحقيق ذلك عن طريق التحقق من موجودية عنصر TextView الذي يعرض الرسالة الخطأ. فيما يلي كيفية تعديل اختبار Espresso الخاص بك للتحقق من ظهور الرسالة الخطأ:

  1. أولاً، قم بإضافة تحقق إضافي في اختبار Espresso للتأكد من ظهور TextView الذي يعرض الرسالة الخطأ. يمكنك القيام بذلك عن طريق استخدام onView() مع withText() لتحديد النص المتوقع للرسالة الخطأ.

  2. ثم، استخدم المرة check() مع matches() للتحقق من موجودية TextView التي تعرض الرسالة الخطأ.

الآن، سأقوم بتعديل الاختبار Espresso الخاص بك ليتم التحقق من ظهور الرسالة الخطأ:

java
@RunWith(AndroidJUnit4.class) public class CreateNoteActivityTitleCannotBeBlank { @Rule public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(CreateNoteActivity.class); @Test public void createNoteActivityTitleCannotBeBlank() { ViewInteraction floatingActionButton = onView( allOf(withId(R.id.fab_add_note), withParent(allOf(withId(R.id.activity_create_note), withParent(withId(android.R.id.content)))), isDisplayed())); floatingActionButton.perform(click()); // Check if the EditText is displayed ViewInteraction editText = onView( allOf(withId(R.id.tiet_note_title), childAtPosition( childAtPosition( withId(R.id.til_title), 0), 0), isDisplayed())); editText.check(matches(isDisplayed())); // Check if the error message is displayed onView(withText("Cannot be blank!")).check(matches(isDisplayed())); } private static Matcher childAtPosition( final Matcher parentMatcher, final int position) { return new TypeSafeMatcher() { @Override public void describeTo(Description description) { description.appendText("Child at position " + position + " in parent "); parentMatcher.describeTo(description); } @Override public boolean matchesSafely(View view) { ViewParent parent = view.getParent(); return parent instanceof ViewGroup && parentMatcher.matches(parent) && view.equals(((ViewGroup) parent).getChildAt(position)); } }; } }

باستخدام هذا التعديل، ستكون قادرًا على اختبار إذا كانت الرسالة الخطأ “Cannot be blank!” تعرض بشكل صحيح عندما يكون الحقل فارغًا.

المزيد من المعلومات

بالطبع، إليك المزيد من المعلومات حول اختبار الأخطاء في حقل EditText باستخدام Espresso على Android:

  1. تجنب التأخيرات الزمنية: عند كتابة اختبارات Espresso، يجب تجنب الاعتماد على التأخيرات الزمنية الثابتة. بدلاً من ذلك، استخدم وظائف Espresso المدمجة مثل waitFor() و check() للتحقق من حدوث الأحداث المتوقعة.

  2. استخدم onView() بذكاء: يمكنك استخدام مجموعة متنوعة من المرشحات مع onView() لتحديد العناصر بدقة. على سبيل المثال، يمكنك استخدام withId() لتحديد العنصر بناءً على معرفه، أو withText() لتحديد العنصر بناءً على النص المعروض.

  3. استخدم matches() بحكمة: قم بتحديد المرشحات المناسبة للتحقق من حالة العنصر المستهدف. على سبيل المثال، استخدم isDisplayed() للتحقق مما إذا كان العنصر مرئيًا على الشاشة.

  4. استخدم check() بشكل فعال: قم بتحديد التحققات التي تناسب احتياجات اختبارك بشكل دقيق. يمكنك استخدام check() للتحقق من خصائص العناصر مثل النص المعروض أو الحالة المرئية.

  5. استخدم الوظائف المساعدة بشكل مناسب: يمكنك كتابة وظائف مساعدة مخصصة لتحقيق أهداف اختبارك بشكل أفضل. على سبيل المثال، يمكنك كتابة وظيفة مساعدة للبحث عن العنصر الفرعي داخل عنصر أب.

  6. التوثيق والتعليقات: يُعتبر إضافة التوثيق الجيد والتعليقات إلى اختبارات Espresso مهمًا لتسهيل فهم كيفية عمل الاختبار وماذا يقوم بتحقيقه كل جزء منه.

باستخدام هذه النصائح، يمكنك كتابة اختبارات Espresso فعالة للتحقق من وجود الأخطاء ومعالجتها في حقول EditText في تطبيق Android الخاص بك.

زر الذهاب إلى الأعلى