تست کردن برنامه فلاتر

3 سال پیش
تست کردن برنامه فلاتر

تست کردن برنامه فلاتر

در این درس از آموزش های برنامه نویسی سایت سورس باران، با آموزش تست کردن برنامه فلاتر در خدمت شما هستیم.

تست مرحله بسیار مهمی در چرخه عمر توسعه یک برنامه کاربردی است. این تضمین می کند که برنامه از کیفیت بالایی برخوردار است. تست نیاز به برنامه ریزی و اجرای دقیق دارد. همچنین زمانبرترین مرحله توسعه است.

زبان دارت و فریم ورک فلاتر پشتیبانی گسترده ای را برای تست خودکار یک برنامه فراهم می کند.

انواع تست

به طور کلی، سه نوع فرآیند تست برای تست کامل یک برنامه در دسترس است. آنها به شرح زیر هستند –

تست واحد

تست واحد ساده ترین روش برای آزمایش یک برنامه است. این کار بر اساس اطمینان از درستی یک قطعه کد (به طور کلی یک تابع) از یک روش یک کلاس است. اما، منعکس کننده محیط واقعی نیست و متعاقباً کمترین گزینه برای یافتن اشکالات است.

تست ویجت

تست ویجت بر اساس اطمینان از درستی ایجاد ویجت، ارائه و تعامل با ویجت های دیگر مطابق انتظار است. این یک قدم جلوتر می رود و یک محیط نزدیک به زمان واقعی را برای یافتن اشکالات بیشتر فراهم می کند.

تست یکپارچه سازی

تست یکپارچه سازی شامل تست واحد و تست ویجت همراه با مولفه خارجی برنامه مانند پایگاه داده ، وب سرویس و غیره است، این محیط واقعی را شبیه سازی می کند تا تقریباً همه اشکالات را پیدا کند، اما پیچیده ترین فرآیند است.

فلاتر پشتیبانی از انواع تست ها را فراهم می کند. این پشتیبانی گسترده و منحصر به فرد برای تست ویجت را فراهم می کند. در این درس، ما به طور کامل در مورد تست ویجت بحث خواهیم کرد.

تست ویجت

فریم ورک تست فلاتر متد testWidgets را برای تست ویجت ها فراهم می کند. این دو آرگومان را می پذیرد –

  • Test description
  • Test code

 

testWidgets('test description: find a widget', '<test code>');

مراحل درگیر

تست ویجت شامل سه مرحله مشخص است –

  • ویجت را در محیط آزمایش رندر کنید.
  • WidgetTester کلاس ارائه شده توسط فریم ورک تست فلاتر برای ساخت و ارائه ویجت است. متد pumpWidget کلاس WidgetTester هر عنصر را می پذیرد و آن را در محیط آزمایش ارائه می دهد.
testWidgets('finds a specific instance', (WidgetTester tester) async { 
   await tester.pumpWidget(MaterialApp( 
      home: Scaffold( 
         body: Text('Hello'), 
      ), 
   )); 
});

 

  • یافتن ویجت، که باید آن را آزمایش کنیم.
  • فریم ورک فلاتر گزینه های زیادی را برای یافتن ویجت های ارائه شده در محیط آزمایش فراهم می کند و به طور کلی Finder نامیده می شوند. متداول ترین Finder ها find.text ، find.byKey و find.byWidget  هستند.
  • find.text ویجت حاوی متن مشخص شده را پیدا می کند.
find.text('Hello')
  • find.byKey ویجت را با کلید خاص خود پیدا کنید.
find.byKey('home')
  • find.byWidget ویجت را با متغیر نمونه خود پیدا کنید.
find.byWidget(homeWidget)

 

اطمینان از عملکرد ویجت که مطابق انتظار کار می کند.

فریم ورک فلاتر گزینه های زیادی را برای مطابقت ویجت با ویجت مورد انتظار فراهم می کند و به طور معمول Matchers نامیده می شوند. ما می توانیم از روش انتظار ارائه شده در فریم ورک تست برای مطابقت با ویجت استفاده کنیم، که در مرحله دوم با ویجت مورد انتظار خود با انتخاب هر یک از موارد پیدا کردیم. برخی از مسابقات مهم به شرح زیر است.

  • findOneWidget – تأیید می کند که یک ویجت واحد پیدا شده است.
expect(find.text('Hello'), findsOneWidget);
  • findNothing – تأیید می کند که هیچ عنصری پیدا نشده است
expect(find.text('Hello World'), findsNothing);
  • findWidgets – بیش از یافتن یک ویجت را تأیید می کند.
expect(find.text('Save'), findsWidgets);
  • findNWidgets – تأیید می کند تعداد N ویجت پیدا شده است.
expect(find.text('Save'), findsNWidgets(2));

 

کد کامل آزمون به شرح زیر است –

testWidgets('finds hello widget', (WidgetTester tester) async { 
   await tester.pumpWidget(MaterialApp( 
      home: Scaffold( 
         body: Text('Hello'), 
      ), 
   )); 
   expect(find.text('Hello'), findsOneWidget); 
});

در اینجا ، ما یک ویجت MaterialApp با متن Hello با استفاده از ویجت Text در متن خود ارائه داده ایم. سپس، ما از find.text برای یافتن ویجت استفاده کردیم و سپس با استفاده از findOneWidget آن را مطابقت دادیم.

نمونه کار

بیایید یک برنامه ساده  بسازیم و یک تست ویجت برای درک بهتر مراحل و مفهوم آن بنویسیم.

  • یک برنامه جدید flutter ، flutter_test_app در Android studio ایجاد کنید.
  • widget_test.dart را در پوشه تست باز کنید. این یک کد تست نمونه دارد که در زیر آورده شده است –
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
   // Build our app and trigger a frame. 
   await tester.pumpWidget(MyApp()); 
   
   // Verify that our counter starts at 0. 
   expect(find.text('0'), findsOneWidget); 
   expect(find.text('1'), findsNothing); 
   
   // Tap the '+' icon and trigger a frame. 
   await tester.tap(find.byIcon(Icons.add)); 
   await tester.pump(); 
   
   // Verify that our counter has incremented. 
   expect(find.text('0'), findsNothing); 
   expect(find.text('1'), findsOneWidget); 
});

 

در اینجا، کد تست برنامه فلاتر ویژگی های زیر را انجام می دهد –

  • ویجت MyApp را با استفاده از tester.pumpWidget ارائه می دهد.
  • اطمینان حاصل می کند که شمارنده در ابتدا با استفاده از findOneWidget صفر است و هیچ چیزی را پیدا نمی کند.
  • دکمه افزایش شمارنده را با استفاده از روش find.byIcon می یابد.
  • با استفاده از متد tester.tap روی دکمه افزایش شمارنده ضربه می زنید.
  • اطمینان حاصل کنید که شمارنده با استفاده از findOneWidget و findNothing منطبق افزایش می یابد.
  • اجازه دهید دوباره دکمه افزایش شمارنده را بزنیم و سپس بررسی کنیم که شمارنده به دو افزایش یافته است.
await tester.tap(find.byIcon(Icons.add)); 
await tester.pump(); 

expect(find.text('2'), findsOneWidget);

 

  • روی منوی Run کلیک کنید.
  • روی گزینه ها در گزینه widget_test.dart کلیک کنید. این تست را اجرا می کند و نتیجه را در پنجره نتیجه گزارش می کند.

Flutter Testing

منبع.

لیست جلسات قبل آموزش برنامه نویسی فلاتر

  1. معرفی برنامه نویسی فلاتر
  2. آموزش نصب فلاتر
  3. اصول ایجاد یک برنامه فلاتر در Android Studio
  4. معماری فریم ورک برنامه نویسی فلاتر
  5. مقدمه ای بر برنامه نویسی دارت
  6. مقدمه ای بر ویجت ها در برنامه نویسی فلاتر
  7. آموزش طرح بندی در برنامه نویسی فلاتر 
  8. ژست های حرکتی در برنامه نویسی فلاتر 
  9. مدیریت State در برنامه نویسی فلاتر
  10. آموزش انیمیشن در برنامه نویسی فلاتر
  11. آموزش نوشتن کد خاص اندروید در برنامه نویسی فلاتر
  12. آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر
  13. مقدمه ای بر پکیج ها در برنامه نویسی فلاتر 
  14.  مفهوم پایگاه داده در برنامه نویسی فلاتر 
  15. آموزش بین المللی کردن در برنامه نویسی فلاتر
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه