0% found this document useful (0 votes)
3 views10 pages

GPT Auto

Uploaded by

umer
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views10 pages

GPT Auto

Uploaded by

umer
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Automation Testing

1. integration_test/signup_test.dart:

import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;


void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets("Sign Up With Valid Email and Password", (WidgetTester tester) async {

app.main();

await tester.pumpAndSettle();

// First Name, Last Name, Email, Password

await tester.enterText(find.byType(TextField).at(0), 'John');

await tester.enterText(find.byType(TextField).at(1), 'Doe');


await tester.enterText(find.byType(TextField).at(2), 'john.doe@example.com');

await tester.enterText(find.byType(TextField).at(3), 'Password@123');

// Sign Up

await tester.tap(find.text('Sign Up'));

await tester.pumpAndSettle();

// Expect VerificationScreen

expect(find.textContaining('Verify Your Email'), findsOneWidget);


});

2. integration_test/signin_test.dart:

import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;

void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
Automation Testing

testWidgets("Sign In With Valid Credentials", (WidgetTester tester) async {

app.main();

await tester.pumpAndSettle();
await tester.enterText(find.byType(TextField).at(0), 'john.doe@example.com');

await tester.enterText(find.byType(TextField).at(1), 'Password@123');

await tester.tap(find.text('Sign In'));

await tester.pumpAndSettle();

// Expect MainScreen or VerificationScreen

expect(find.text('Crop Care'), findsOneWidget);

});

}
3. integration_test/onboarding_test.dart:

import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;

void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets("Onboarding Flow Test", (WidgetTester tester) async {


app.main();

await tester.pumpAndSettle();

// Tap "Next" 5 times

for (var i = 0; i < 5; i++) {

await tester.tap(find.text('Next'));

await tester.pumpAndSettle();

}
expect(find.text('Get Started'), findsOneWidget);
Automation Testing

await tester.tap(find.text('Get Started'));

await tester.pumpAndSettle();

// Should go to AuthWrapper (Auth or Main)

expect(find.text('Disclaimer'), findsOneWidget);
});

4. integration_test/forget_password_test.dart:

import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;

void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets("Forget Password Flow", (WidgetTester tester) async {

app.main();

await tester.pumpAndSettle();

// Navigate to ForgetPassword

await tester.tap(find.text("Forgot Password?"));

await tester.pumpAndSettle();

await tester.enterText(find.byType(TextField).first, "john.doe@example.com");


await tester.tap(find.text("Send Reset Email"));

await tester.pumpAndSettle();

expect(find.textContaining("Password reset email sent"), findsOneWidget);

});

5. integration_test/email_verification_test.dart:

import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
Automation Testing

import 'package:crop_care_companion/main.dart' as app;

void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets("Email Verification Screen Test", (WidgetTester tester) async {

app.main();

await tester.pumpAndSettle();

// Assume post-signup, we're on VerificationScreen

expect(find.text("Verify Your Email"), findsOneWidget);

// Resend email

await tester.tap(find.text("Resend Email"));

await tester.pumpAndSettle();
// Button disabled while sending

final btn = tester.widget<ElevatedButton>(find.byType(ElevatedButton).first);

expect(btn.enabled, false);

});

6. integration_test/auth_switch_test.dart:

import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';

import 'package:flutter/material.dart';

import 'package:crop_care_companion/main.dart' as app;

void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets("Auth Switch Screen Test", (WidgetTester tester) async {

app.main();
await tester.pumpAndSettle();
Automation Testing

// Close disclaimer

expect(find.text("Disclaimer"), findsOneWidget);

await tester.tap(find.text("Close"));

await tester.pumpAndSettle();
// Toggle to Sign In

await tester.tap(find.text("Already have an account? Sign In"));

await tester.pumpAndSettle(const Duration(seconds: 1));

expect(find.text("Dont have an account? Sign Up"), findsOneWidget);

// Toggle back

await tester.tap(find.text("Dont have an account? Sign Up"));

await tester.pumpAndSettle(const Duration(seconds: 1));

expect(find.text("Already have an account? Sign In"), findsOneWidget);


});

7. integration_test/alarm_screen_test.dart:

import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;

import 'package:flutter/material.dart';
void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets('Add → Edit → Delete Alarm', (WidgetTester tester) async {

app.main();

await tester.pumpAndSettle();

// Add

await tester.tap(find.byType(FloatingActionButton));
await tester.pumpAndSettle();
Automation Testing

await tester.enterText(find.byType(TextField).first, 'Test Alarm');

await tester.tap(find.textContaining('Pick Date'));

await tester.pumpAndSettle();

await tester.tap(find.text(DateTime.now().day.toString()));
await tester.pumpAndSettle();

await tester.tap(find.text('OK'));

await tester.pumpAndSettle();

await tester.tap(find.text('OK'));

await tester.pumpAndSettle();

await tester.tap(find.text('Save'));

await tester.pumpAndSettle();

expect(find.text('Test Alarm'), findsOneWidget);


// Edit

await tester.tap(find.byIcon(Icons.edit).first);

await tester.pumpAndSettle();

await tester.enterText(find.byType(TextField).first, 'Edited Alarm');

await tester.tap(find.text('Update'));

await tester.pumpAndSettle();

expect(find.text('Edited Alarm'), findsOneWidget);


// Delete

await tester.tap(find.byIcon(Icons.delete).first);

await tester.pumpAndSettle();

expect(find.text('Edited Alarm'), findsNothing);

});

}
Automation Testing

8. integration_test/main_screen_test.dart:

import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;


import 'package:flutter/material.dart';

void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets('BottomNav Navigation & Logout', (tester) async {

app.main();

await tester.pumpAndSettle();

// Scan (default)

expect(find.text('Scan'), findsWidgets);
// Tracker

await tester.tap(find.text('Tracker'));

await tester.pumpAndSettle();

expect(find.byIcon(Icons.note), findsOneWidget);

// Calendar

await tester.tap(find.text('Calendar'));

await tester.pumpAndSettle();
expect(find.byIcon(Icons.calendar_month), findsOneWidget);

// Library

await tester.tap(find.text('Library'));

await tester.pumpAndSettle();

expect(find.byIcon(Icons.library_books), findsOneWidget);

// Logout

await tester.tap(find.byIcon(Icons.logout));
await tester.pumpAndSettle();
Automation Testing

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

});

9. integration_test/main_app_test.dart:
import 'package:flutter_test/flutter_test.dart';

import 'package:integration_test/integration_test.dart';

import 'package:crop_care_companion/main.dart' as app;

import 'package:flutter/material.dart';

import 'package:firebase_auth/firebase_auth.dart';

void main() {

IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets('App start → Loading → Onboarding → Auth/Main', (tester) async {


// 1. Loading

app.main();

await tester.pump();

expect(find.byType(CircularProgressIndicator), findsOneWidget);

// 2. Onboarding (signed out)

await FirebaseAuth.instance.signOut();

await tester.pumpAndSettle();
expect(find.text('Get Started'), findsOneWidget);

// 3. Get Started → Auth

await tester.tap(find.text('Get Started'));

await tester.pumpAndSettle();

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

// 4. If signed in & verified, Get Started → MainScreen

// (Requires real or mocked auth state prior to app.main())


});
Automation Testing

Test Test
N Name of Modules Framewo
Descriptio Test Script reference Rep
o tools Automated rk Used
n ort

integration integration
Valid sign- SignUpWith signup_test.darttestWidgets("Sig
1 _test + _test + Pass
up flow Email n Up With Valid…")
flutter_test flutter_test

integration integration
Valid sign- SignInWithE signin_test.darttestWidgets("Sign
2 _test + _test + Pass
in flow mail In With Valid…")
flutter_test flutter_test

integration Onboardin integration


OnboardingS onboarding_test.darttestWidgets(
3 _test + g _test + Pass
creen "Onboarding Flow…")
flutter_test navigation flutter_test

integration integration
Password ForgetPassw forget_password_test.darttestWi
4 _test + _test + Pass
reset flow ord dgets("Forget Password…")
flutter_test flutter_test

Email
integration integration
verification VerificationS email_verification_test.darttestW
5 _test + _test + Pass
resend & creen idgets("Email Verification…")
flutter_test flutter_test
navigation

Auth
integration screen flip integration
auth_switch_test.darttestWidgets
6 _test + & Auth _test + Pass
("Auth Switch Screen…")
flutter_test disclaimer flutter_test
dialog

integration Add/Edit/ integration


alarm_screen_test.darttestWidget
7 _test + Delete AlarmScreen _test + Pass
s('Add → Edit → Delete Alarm')
flutter_test alarms flutter_test
Automation Testing

Test Test
N Name of Modules Framewo
Descriptio Test Script reference Rep
o tools Automated rk Used
n ort

Bottom nav
integration integration
tab main_screen_test.darttestWidget
8 _test + MainScreen _test + Pass
switching s('BottomNav Navigation…')
flutter_test flutter_test
& logout

App start:
integration loading → AuthWrappe integration
main_app_test.darttestWidgets('
9 _test + onboarding r & _test + Pass
App start → Loading →…')
flutter_test → IntroScreen flutter_test
auth/main

You might also like