بالطبع، لديك القدرة على اختبار إذا كانت الرسالة الخطأ معروضة بواسطة Espresso في تطبيق Android الخاص بك. يمكنك تحقيق ذلك عن طريق التحقق من موجودية عنصر TextView الذي يعرض الرسالة الخطأ. فيما يلي كيفية تعديل اختبار Espresso الخاص بك للتحقق من ظهور الرسالة الخطأ:
-
أولاً، قم بإضافة تحقق إضافي في اختبار Espresso للتأكد من ظهور TextView الذي يعرض الرسالة الخطأ. يمكنك القيام بذلك عن طريق استخدام
onView()
معwithText()
لتحديد النص المتوقع للرسالة الخطأ.مقالات ذات صلة-
كيفية كشف التخزين المؤقت في AVPlayer17/03/2024
-
تحويل وقت 12 ساعة إلى 24 ساعة في جافا20/03/2024
-
تغيير علامات التبويب باستخدام JavaScript27/03/2024
-
-
ثم، استخدم المرة
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:
-
تجنب التأخيرات الزمنية: عند كتابة اختبارات Espresso، يجب تجنب الاعتماد على التأخيرات الزمنية الثابتة. بدلاً من ذلك، استخدم وظائف Espresso المدمجة مثل
waitFor()
وcheck()
للتحقق من حدوث الأحداث المتوقعة. -
استخدم
onView()
بذكاء: يمكنك استخدام مجموعة متنوعة من المرشحات معonView()
لتحديد العناصر بدقة. على سبيل المثال، يمكنك استخدامwithId()
لتحديد العنصر بناءً على معرفه، أوwithText()
لتحديد العنصر بناءً على النص المعروض. -
استخدم
matches()
بحكمة: قم بتحديد المرشحات المناسبة للتحقق من حالة العنصر المستهدف. على سبيل المثال، استخدمisDisplayed()
للتحقق مما إذا كان العنصر مرئيًا على الشاشة. -
استخدم
check()
بشكل فعال: قم بتحديد التحققات التي تناسب احتياجات اختبارك بشكل دقيق. يمكنك استخدامcheck()
للتحقق من خصائص العناصر مثل النص المعروض أو الحالة المرئية. -
استخدم الوظائف المساعدة بشكل مناسب: يمكنك كتابة وظائف مساعدة مخصصة لتحقيق أهداف اختبارك بشكل أفضل. على سبيل المثال، يمكنك كتابة وظيفة مساعدة للبحث عن العنصر الفرعي داخل عنصر أب.
-
التوثيق والتعليقات: يُعتبر إضافة التوثيق الجيد والتعليقات إلى اختبارات Espresso مهمًا لتسهيل فهم كيفية عمل الاختبار وماذا يقوم بتحقيقه كل جزء منه.
باستخدام هذه النصائح، يمكنك كتابة اختبارات Espresso فعالة للتحقق من وجود الأخطاء ومعالجتها في حقول EditText في تطبيق Android الخاص بك.