|
302 | 302 | } |
303 | 303 | ] |
304 | 304 | }, |
| 305 | + { |
| 306 | + "title": "Flutter টেস্টিং (Flutter Testing)", |
| 307 | + "items": [ |
| 308 | + { |
| 309 | + "definition": "ফ্লাটারে ৩ ধরনের টেস্ট রান করা যায়", |
| 310 | + "code": "১. ইউনিট টেস্ট (Unit Test)\n২. উইজেট টেস্ট (Widget Test)\n৩. ইন্টিগ্রেশন টেস্ট (Integration Test)" |
| 311 | + }, |
| 312 | + { |
| 313 | + "definition": "Unit Test কি?", |
| 314 | + "code": "কোনো একটা ফাংশন, মেথড বা ক্লাস টেস্ট করার জন্য ইউনিট টেস্ট ব্যবহার করা হয়।" |
| 315 | + }, |
| 316 | + { |
| 317 | + "definition": "Widget Test কি?", |
| 318 | + "code": "উইজেট টেস্টিং হলো নির্দিষ্ট উইজেট বা উইজেটের কোনো পার্ট টেস্ট করা।" |
| 319 | + }, |
| 320 | + { |
| 321 | + "definition": "Integration Test কি?", |
| 322 | + "code": "ইন্টিগ্রেশন টেস্টিং এর মাধ্যমে একটি এপের কমপ্লিট ফাংশনালিটি টেস্ট করা হয়। একে এন্ড টু এন্ড টেস্টও বলা হয়।" |
| 323 | + }, |
| 324 | + { |
| 325 | + "definition": "টেস্টিং রিলেটেড প্যাকেজ যোগ করতে -", |
| 326 | + "code": "dev_dependencies:\n flutter_test:\n sdk: flutter\n integration_test:\n sdk: flutter\n mockito: ^5.0.0" |
| 327 | + }, |
| 328 | + { |
| 329 | + "definition": "ইউনিট টেস্ট রান করতে -", |
| 330 | + "code": "flutter test test/unit_test.dart" |
| 331 | + }, |
| 332 | + { |
| 333 | + "definition": "উইজেট টেস্ট রান করতে -", |
| 334 | + "code": "flutter test test/widget_test.dart" |
| 335 | + }, |
| 336 | + { |
| 337 | + "definition": "ইন্টিগ্রেশন টেস্ট রান করতে -", |
| 338 | + "code": "flutter test integration_test/app_test.dart" |
| 339 | + }, |
| 340 | + { |
| 341 | + "definition": "সকল টেস্ট রান করতে -", |
| 342 | + "code": "flutter test" |
| 343 | + }, |
| 344 | + { |
| 345 | + "definition": "ইউনিট টেস্ট উদাহরণ", |
| 346 | + "code": "void main() {\n test('String.split() splits the string on the delimiter', () {\n var string = 'foo,bar,baz';\n expect(string.split(','), equals(['foo', 'bar', 'baz']));\n });\n}" |
| 347 | + }, |
| 348 | + { |
| 349 | + "definition": "উইজেট টেস্ট উদাহরণ", |
| 350 | + "code": "void main() {\n testWidgets('MyWidget has a title and message', (WidgetTester tester) async {\n await tester.pumpWidget(MyWidget(title: 'T', message: 'M'));\n final titleFinder = find.text('T');\n final messageFinder = find.text('M');\n expect(titleFinder, findsOneWidget);\n expect(messageFinder, findsOneWidget);\n });\n}" |
| 351 | + }, |
| 352 | + { |
| 353 | + "definition": "ইন্টিগ্রেশন টেস্ট উদাহরণ", |
| 354 | + "code": "void main() {\n IntegrationTestWidgetsFlutterBinding.ensureInitialized();\n testWidgets('tap on the floating action button, verify counter',\n (WidgetTester tester) async {\n app.main();\n await tester.pumpAndSettle();\n expect(find.text('0'), findsOneWidget);\n final Finder fab = find.byTooltip('Increment');\n await tester.tap(fab);\n await tester.pumpAndSettle();\n expect(find.text('1'), findsOneWidget);\n });\n}" |
| 355 | + }, |
| 356 | + { |
| 357 | + "definition": "মক অবজেক্ট তৈরি করেন (Mockito ব্যবহার করে)", |
| 358 | + "code": "import 'package:mockito/mockito.dart';\n\nclass MockYourClass extends Mock implements YourClass {}\n\nvoid main() {\n final mock = MockYourClass();\n when(mock.someMethod()).thenReturn('mocked value');\n}" |
| 359 | + }, |
| 360 | + { |
| 361 | + "definition": "টেস্ট কভারেজ রিপোর্ট জেনারেট করেন", |
| 362 | + "code": "flutter test --coverage\n# কভারেজ রিপোর্ট coverage/lcov.info ফাইলে জেনারেট হবে\n# HTML রিপোর্ট জেনারেট করতে lcov ইনস্টল করেন এবং নিচের কমান্ড চালান:\n# genhtml coverage/lcov.info -o coverage/html" |
| 363 | + } |
| 364 | + ] |
| 365 | + }, |
305 | 366 | { |
306 | 367 | "title": "কিছু ইম্পরট্যান্ট ফ্লাটার শীট", |
307 | 368 | "items": [ |
|
0 commit comments