اختبر تطبيق الاندرويد Unit Test

من اهم المراحل التي يمر بها التطبيق خلال البرمجة هي مرحلة الاختبارات بشكل عام . حيث تقوم باكتشاف الاخطاء والهفوات البرمجية قبل اصدار التطبيق . ولعل من اهم هذه الاختبارات هو اختبار Unit Test .
مستخدم في الجافا بشكل كبير جداً وهو يستخدم للتأكد من الدوال وعملها. ويمكن استخدامه مع الاندرويد بحكم انه يعتمد على جافا في برمجته .
لنبدأ .

  • انشئ تطبيق اندرويد جديد .
  • قم بعمل تشغيل للتطبيق على جهاز حقيقي .
  • تهيئة التطبيق للعمل على Unit Test.
    في اصدار اندرويد ستديو 2.2 واعلى تم اضافة Unit Test بشكل افتراضي عند انشاء تطبيق جديد. وسنجد اكواد Test في هذا المسار .
  • انشاء اول Unit Test .
    الان وبعد تهيئة المشروع للاختبارات سنقوم بانشاء اول اختبار لنا ولكن بما ان المشروع جديد فنحتاج الى كتابة كود لاختباره وسنقوم بانشاء كلاس آلة حاسبة بسيطة وسنقوم بعمليات الاختبار عليها .

    public class Calculator {
    
        public double sum(double a, double b){
            return 0;
        }
    
        public double subtract(double a, double b){
            return 0;
        }
    
        public double divide(double a, double b){
            return 0;
        }
    
        public double multiply(double a, double b){
            return 0;
        }
    }

    تلاحظ ان جميع الدوال تعيد القيمة 0 . سنقوم بتعديله ولكن الان قم بنسخه واضافته لمشروعك .
    لحسن الحظ ان الاندرويد ستديو يوجد به طريقة سريعة لانشاء كلاس الاختبار لهذا الكلاس الخاص بنا بخطوات بسيطة اتبع الصور :

    سيقوم الاندرويد استديو بتوليد كلاس جديد واضافته الى مسار Test ويكون بهذا الشكل :

    import org.junit.Before;
    import org.junit.Test;
    
    import static org.junit.Assert.*;
    
    public class CalculatorTest {
    
        private Calculator mCalculator;
    
        @Before
        public void setUp() throws Exception {
            mCalculator = new Calculator();
        }
    
        @Test
        public void testSum() throws Exception {
            //expected: 6, sum of 1 and 5
            assertEquals(6d, mCalculator.sum(1d, 5d), 0);
        }
    
        @Test
        public void testSubtract() throws Exception {
            assertEquals(1d, mCalculator.subtract(5d, 4d), 0);
        }
    
        @Test
        public void testDivide() throws Exception {
            assertEquals(4d, mCalculator.divide(20d, 5d), 0);
        }
    
        @Test
        public void testMultiply() throws Exception {
            assertEquals(10d, mCalculator.multiply(2d, 5d), 0);
        }
    }

    نلاحظ ان في كل دالة اضفنا هذا السطر 

    assertEquals(6d, mCalculator.sum(1d, 5d), 0);

    هذه الدالة تحتوي على 3 متغيرات : 
    الاول : الناتج المتوقع و الثاني عملية الجمع . فعند جمع 1 + 5 فالناتج المتوقع 6 !

  • تشغيل الاختبار :
    اضغط بالمؤشر الايمن على Class الاختبار وقم باختيار Run Test وسيقوم الاندرويد ستديو بتنفيذ الاختبار وستكون النتيجة خروج 4 اخطاء لجميع الدوال . 
    الان سنقوم بتعديل دالة sum في callculator Class وسيكون بالشكل التالي :

    public double sum(double a, double b){
        return a + b;
    }

    الان وعند التشغيل مره اخرى سيظهر ان هناك 3 اخطاء فقط ويمكن ايضاً تعديل بقية الدوال لتجنب الاخطاء والتأكد من عمل تطبيقك .
    هذا كان اختبار Unit Test بشكل مختصر وسهل باذن الله وسنتكلم في المرة القادمة عن اختبار الواجهات والتصميم.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *