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); }); }