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