CPD/test/main_test.dart

63 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'lib/main.dart';
void main() {
group('Kalorienverbrauch Rechner Tests', () {
test('berechneKalorienverbrauch gibt den richtigen Wert für langsames Laufen zurück', () {
final _MyHomePageState homePageState = _MyHomePageState();
double result = homePageState._berechneKalorienverbrauch(9.0, 60.0, 65.0);
expect(result, closeTo(520.0, 1.0));
});
test('berechneKalorienverbrauch gibt den richtigen Wert für zügiges Laufen zurück', () {
final _MyHomePageState homePageState = _MyHomePageState();
double result = homePageState._berechneKalorienverbrauch(12.0, 60.0, 65.0);
expect(result, closeTo(650.0, 1.0));
});
test('berechneKalorienverbrauch gibt den richtigen Wert für schnelles Laufen zurück', () {
final _MyHomePageState homePageState = _MyHomePageState();
double result = homePageState._berechneKalorienverbrauch(15.0, 60.0, 65.0);
expect(result, closeTo(780.0, 1.0));
});
test('berechneKalorienverbrauch gibt 0 für ungültige Geschwindigkeit zurück', () {
final _MyHomePageState homePageState = _MyHomePageState();
double result = homePageState._berechneKalorienverbrauch(5.0, 60.0, 65.0);
expect(result, 0.0);
});
});
testWidgets('Kalorienverbrauch Rechner UI-Test', (WidgetTester tester) async {
await tester.pumpWidget(MyApp());
expect(find.text('Kalorienverbrauch Rechner'), findsOneWidget);
expect(find.byType(TextField), findsNWidgets(3));
expect(find.byType(ElevatedButton), findsOneWidget);
await tester.enterText(find.byType(TextField).at(0), '65');
await tester.enterText(find.byType(TextField).at(1), '9');
await tester.enterText(find.byType(TextField).at(2), '60');
await tester.tap(find.byType(ElevatedButton));
await tester.pump();
expect(find.text('Geschwindigkeit pro Kilometer: 6.67 Minuten'), findsOneWidget);
expect(find.text('Kalorienverbrauch: 520.00 kcal'), findsOneWidget);
});
testWidgets('Ungültige Eingabe zeigt Fehlermeldung an', (WidgetTester tester) async {
await tester.pumpWidget(MyApp());
await tester.enterText(find.byType(TextField).at(0), '65');
await tester.enterText(find.byType(TextField).at(1), '5');
await tester.enterText(find.byType(TextField).at(2), '60');
await tester.tap(find.byType(ElevatedButton));
await tester.pump();
expect(find.text('Ungültige Angaben'), findsOneWidget);
});
}