Arwa Omar نشر منذ 6 ساعة أرسل تقرير نشر منذ 6 ساعة كيف يمكنني فحص الميثودات التي وظيفتها جلب وتعديل الداتا من والى الفايربيس؟ جربت الـ Mockito لكن للاسف لم افهمه جيدا فلم استطع العمل به. اتمنى ممن عنده علم الاجابه، شاكره لكم مثلا: } public void fetchPhoneNumber(final PhoneFetchListener listener) ;()fAuth = FirebaseAuth.getInstance DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference() .child("customer") .child(fAuth.getCurrentUser().getUid()) .child("phone"); databaseReference.addListenerForSingleValueEvent(new ValueEventListener(){x } @Override }public void onDataChange(DataSnapshot dataSnapshot) ;String phone = dataSnapshot.getValue(String.class); setPhone(phone) ;listener.onPhoneFetched(phone) } @Override }public void onCancelled(DatabaseError databaseError) ;Log.e("fetchPhoneNumber", "Error fetching phone number: " + databaseError.getMessage()) { }); } public interface PhoneFetchListener { void onPhoneFetched(String phone); } 1 اقتباس
0 Mustafa Suleiman نشر منذ 3 ساعة أرسل تقرير نشر منذ 3 ساعة ستحتاجين إلى استخدام إطار العمل JUnit الخاص بإختبارات الوحدة وهو الأكثر استخدامًا بخصوص جافا. أيضًا استخدام Mockito وهي إطار عمل لتنفيذ Mocking وتساعدك على اختبار الكود الذي يعتمد على كائنات أخرى، بمعنى إنشاء كائنات مزيفة mock objects في اختبارات الوحدة، وذلك إختياري لتحسين اختبارات الوحدة التي تقومين بها. لنقم بإضافة إطار العمل JUnit بإضافة التبعية التالية في ملف build.gradle: dependencies { testImplementation 'junit:junit:4.13.2' } ثم إنشاء فئة جديدة في src/test/java بامتداد .java. وتلك الفئة ستحتوي على اختبارات الوحدة. ثم كتابة اختبارات الوحدة باستخدام إطار العمل JUnit وسيبدوا كالتالي بدون Mockito: import org.junit.Before; import org.junit.Test; public class ExampleTest { private ExampleClass exampleClass; @Before public void setup() { exampleClass = new ExampleClass(); } @Test public void testExampleMethod() { // كتابة اختبار الوحدة هنا assertEquals("النتيجة المتوقعة", exampleClass.exampleMethod()); } } ثم تشغيل الاختبارات باستخدام Android Studio، وتستطيعي تشغيل الاختبارات الفردية أو جميع الاختبارات في الفئة. الآن عليكِ تمكين مكتبة Mockito في مشروعك عن طريق إضافة التبعية التالية في ملف build.gradle: dependencies { testImplementation 'org.mockito:mockito-core:4.0.0' } ثم إنشاء كائنات مزيفة باستخدام مكتبة Mockito أي نقوم بالكتابة في نفس ملف إختبار الوحدة، ليصبح بالشكل التالي: import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import static org.junit.Assert.assertEquals; public class MyActivityTest { @RunWith(MockitoJUnitRunner.class) public class MyActivityTest { @Test public void testCalculateSum() { MyActivity myActivity = new MyActivity(); int result = myActivity.calculateSum(2, 3); assertEquals(5, result); } @Test public void testCalculateSumWithMock() { MyDependency dependency = Mockito.mock(MyDependency.class); Mockito.when(dependency.getValue()).thenReturn(5); MyActivity myActivity = new MyActivity(dependency); int result = myActivity.calculateSumWithDependency(); assertEquals(10, result); Mockito.verify(dependency, Mockito.times(1)).getValue(); } } } لاحظي: @Test لإضافة اختبارات جديدة وهو خاص بـ Junit Mockito.mock() لإنشاء كائنات mock objects. Mockito.when() لإرجاع قيم محددة من mock objects. Mockito.verify() للتأكد من استدعاء الطرق المطلوبة. استخدم assertEquals() للتأكد من أن النتيجة تساوي القيمة المتوقعة. بعد ذلك تشغيل الاختبارات باستخدام Android Studio. والإختبار هنا من أجل التأكد هل تُرجع دالة calculateSumWithDependency القيمة الصحيحة عندما تُرجع دالة getValue() في الكائن المزيف القيمة 5؟ وهل تُستدعى دالة getValue() في الكائن المزيف مرة واحدة فقط؟ وبالطبع لا يجب كتابة اسم الكلاس بالضرورة MyActivityTest، بإمكانك اختيار أي اسم تريدينه، لكن من المهم أن يكون اسمًا وصفيًا يعكس وظيفة الكلاس، أي مثلاً تسميته MyActivityCalculatorTest أو MyActivityDependencyTest لإبراز ما يتم اختباره. اقتباس
السؤال
Arwa Omar
كيف يمكنني فحص الميثودات التي وظيفتها جلب وتعديل الداتا من والى الفايربيس؟ جربت الـ Mockito لكن للاسف لم افهمه جيدا فلم استطع العمل به.
اتمنى ممن عنده علم الاجابه، شاكره لكم
مثلا:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.