优化
This commit is contained in:
79
test/encouragement_service_test.dart
Normal file
79
test/encouragement_service_test.dart
Normal file
@@ -0,0 +1,79 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:focus_buddy/services/encouragement_service.dart';
|
||||
|
||||
void main() {
|
||||
group('EncouragementService', () {
|
||||
late EncouragementService encouragementService;
|
||||
|
||||
setUp(() {
|
||||
encouragementService = EncouragementService();
|
||||
});
|
||||
|
||||
test('should initialize with default messages when load fails', () async {
|
||||
// Act: Try to load messages (will fail since we're in test environment)
|
||||
await encouragementService.loadMessages();
|
||||
|
||||
// Assert: Should have default messages for all types
|
||||
expect(encouragementService.getAllMessages(), isNotEmpty);
|
||||
expect(encouragementService.getAllMessages(EncouragementType.start), isNotEmpty);
|
||||
expect(encouragementService.getAllMessages(EncouragementType.distraction), isNotEmpty);
|
||||
expect(encouragementService.getAllMessages(EncouragementType.complete), isNotEmpty);
|
||||
expect(encouragementService.getAllMessages(EncouragementType.earlyStop), isNotEmpty);
|
||||
});
|
||||
|
||||
test('should return a random message for each type', () async {
|
||||
// Arrange: Load messages
|
||||
await encouragementService.loadMessages();
|
||||
|
||||
// Act: Get random messages for each type
|
||||
final generalMessage = encouragementService.getRandomMessage();
|
||||
final startMessage = encouragementService.getRandomMessage(EncouragementType.start);
|
||||
final distractionMessage = encouragementService.getRandomMessage(EncouragementType.distraction);
|
||||
final completeMessage = encouragementService.getRandomMessage(EncouragementType.complete);
|
||||
final earlyStopMessage = encouragementService.getRandomMessage(EncouragementType.earlyStop);
|
||||
|
||||
// Assert: All messages should be non-empty strings
|
||||
expect(generalMessage, isNotEmpty);
|
||||
expect(startMessage, isNotEmpty);
|
||||
expect(distractionMessage, isNotEmpty);
|
||||
expect(completeMessage, isNotEmpty);
|
||||
expect(earlyStopMessage, isNotEmpty);
|
||||
});
|
||||
|
||||
test('should return general messages when using default type', () async {
|
||||
// Arrange: Load messages
|
||||
await encouragementService.loadMessages();
|
||||
final generalMessages = encouragementService.getAllMessages();
|
||||
|
||||
// Act: Get a random message with default type
|
||||
final message = encouragementService.getRandomMessage();
|
||||
|
||||
// Assert: Message should be in the general messages list
|
||||
expect(generalMessages, contains(message));
|
||||
});
|
||||
|
||||
test('should return distraction-specific messages when requested', () async {
|
||||
// Arrange: Load messages
|
||||
await encouragementService.loadMessages();
|
||||
final distractionMessages = encouragementService.getAllMessages(EncouragementType.distraction);
|
||||
|
||||
// Act: Get a random distraction message
|
||||
final message = encouragementService.getRandomMessage(EncouragementType.distraction);
|
||||
|
||||
// Assert: Message should be in the distraction messages list
|
||||
expect(distractionMessages, contains(message));
|
||||
});
|
||||
|
||||
test('should return complete-specific messages when requested', () async {
|
||||
// Arrange: Load messages
|
||||
await encouragementService.loadMessages();
|
||||
final completeMessages = encouragementService.getAllMessages(EncouragementType.complete);
|
||||
|
||||
// Act: Get a random complete message
|
||||
final message = encouragementService.getRandomMessage(EncouragementType.complete);
|
||||
|
||||
// Assert: Message should be in the complete messages list
|
||||
expect(completeMessages, contains(message));
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user