البرمجة

تجنب NullPointerException مع Mockito في اختبارات Android

عند استخدام Mockito في اختبار وحدات التطبيقات على Android، يجب التأكد من تهيئة الـ Mock بشكل صحيح. في حالتك، يبدو أن الخطأ يحدث لأنك لم تقوم بتهيئة ال Mock Context بشكل صحيح، مما يؤدي إلى حدوث استثناء NullPointerException عند محاولة استدعاء getString من Context.

لحل هذه المشكلة، يجب تهيئة الـ Mock Context قبل استخدامه في الاختبار. يمكنك فعل ذلك في طريقتين:

  1. استخدام الإعلان والتهيئة المباشرة للمتغير mMockContext في الدالة setUp() قبل تشغيل الاختبار:

    java
    public class MockitoTest { private static final String FAKE_STRING = "HELLO WORLD"; @Mock Context mMockContext; private ClassUnderTest myObjectUnderTest; @Before public void setUp() { MockitoAnnotations.initMocks(this); when(mMockContext.getString(R.string.hello_world)) .thenReturn(FAKE_STRING); myObjectUnderTest = new ClassUnderTest(mMockContext); } @Test public void readStringFromContext_LocalizedString() { // ...استمر في الاختبار كما هو } }
  2. استخدام الإعلان والتهيئة المباشرة للمتغير mMockContext في كل اختبار بشكل منفصل:

    java
    public class MockitoTest { private static final String FAKE_STRING = "HELLO WORLD"; @Mock Context mMockContext; @Test public void readStringFromContext_LocalizedString() { MockitoAnnotations.initMocks(this); when(mMockContext.getString(R.string.hello_world)) .thenReturn(FAKE_STRING); ClassUnderTest myObjectUnderTest = new ClassUnderTest(mMockContext); // ...استمر في الاختبار كما هو } }

باستخدام أحد الطرقين أعلاه، يجب أن تتجنب الاستثناءات NullPointerException وتتمكن من استخدام Mockito بنجاح في اختباراتك.

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

بالطبع! عند استخدام Mockito في اختبار وحدات التطبيقات، هناك بعض النقاط الهامة التي يجب مراعاتها:

  1. تهيئة Mockito: يجب تهيئة Mockito في الدالة setUp() باستخدام MockitoAnnotations.initMocks(this) لضمان أن جميع الـ Mocks تم إنشاؤها بشكل صحيح قبل تشغيل أي اختبار.

  2. تهيئة الـ Mocks: قبل استخدام الـ Mocks في الاختبار، يجب تهيئتها بشكل صحيح باستخدام when(...).thenReturn(...) لتحديد سلوك الـ Mocks عند استدعاءها في الاختبار.

  3. استدعاء الدوال الصحيحة: تأكد من استدعاء الدوال الصحيحة من الكائن تحت الاختبار. في حالتك، تأكد من أنك تستدعي getHelloWorldString() من myObjectUnderTest وليس من Context.

  4. تنظيف المتغيرات: في حالة استخدام الـ Mocks في كل اختبار بشكل منفصل، تأكد من تهيئة الـ Mocks وإنشاء الكائن تحت الاختبار في كل اختبار بشكل منفصل، وذلك لتجنب الاختلاط بين الاختبارات.

  5. التأكد من الاستيرادات الصحيحة: تأكد من استيراد الحزم الصحيحة لـ Mockito و JUnit في ملف الاختبار.

  6. التأكد من استخدام الإصدارات المتوافقة: تأكد من استخدام إصدارات من Mockito و JUnit متوافقة مع بعضها البعض ومع نسخة Android التي تعمل عليها.

باتباع هذه النصائح، يجب أن تتمكن من استخدام Mockito بنجاح في اختباراتك وتجنب الاستثناءات.

مقالات ذات صلة

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر