test: 테스트 파일 추가 및 리팩토링 반영

- combat_calculator_test, skill_service_test, stat_calculator_test 추가
- mock_factories.dart 헬퍼 추가
- progress_loop_test, game_session_controller_test 서비스 분리 반영
This commit is contained in:
JiWoong Sul
2026-01-15 01:53:51 +09:00
parent c33c1ff470
commit a41984d998
7 changed files with 1576 additions and 138 deletions

View File

@@ -1,58 +1,12 @@
import 'package:asciineverdie/src/core/engine/game_mutations.dart';
import 'package:asciineverdie/src/core/engine/progress_service.dart';
import 'package:asciineverdie/src/core/engine/reward_service.dart';
import 'package:asciineverdie/src/core/model/game_state.dart';
import 'package:asciineverdie/src/core/model/pq_config.dart';
import 'package:asciineverdie/src/core/storage/save_manager.dart';
import 'package:asciineverdie/src/core/storage/save_repository.dart';
import 'package:asciineverdie/src/core/storage/save_service.dart';
import 'package:asciineverdie/src/features/game/game_session_controller.dart';
import 'package:fake_async/fake_async.dart';
import 'package:flutter_test/flutter_test.dart';
class FakeSaveManager implements SaveManager {
final List<GameState> savedStates = [];
(SaveOutcome, GameState?, bool) Function(String?)? onLoad;
SaveOutcome saveOutcome = const SaveOutcome.success();
@override
Future<SaveOutcome> saveState(
GameState state, {
String? fileName,
bool cheatsEnabled = false,
}) async {
savedStates.add(state);
return saveOutcome;
}
@override
Future<(SaveOutcome, GameState?, bool)> loadState({String? fileName}) async {
if (onLoad != null) {
return onLoad!(fileName);
}
return (const SaveOutcome.success(), null, false);
}
@override
Future<List<SaveFileInfo>> listSaves() async => [];
@override
Future<SaveOutcome> deleteSave({String? fileName}) async {
return const SaveOutcome.success();
}
@override
Future<bool> saveExists({String? fileName}) async => false;
}
import '../helpers/mock_factories.dart';
void main() {
const config = PqConfig();
final mutations = GameMutations(config);
final progressService = ProgressService(
config: config,
mutations: mutations,
rewards: RewardService(mutations, config),
);
final progressService = MockFactories.createProgressService();
GameSessionController buildController(
FakeAsync async,