التصنيفات
Android

اختبر تطبيق الاندرويد 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 بشكل مختصر وسهل باذن الله وسنتكلم في المرة القادمة عن اختبار الواجهات والتصميم.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.