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,63 +1,18 @@
import 'package:asciineverdie/src/core/engine/game_mutations.dart';
import 'package:asciineverdie/src/core/engine/progress_loop.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/combat_state.dart';
import 'package:asciineverdie/src/core/model/combat_stats.dart';
import 'package:asciineverdie/src/core/model/game_state.dart';
import 'package:asciineverdie/src/core/model/monster_combat_stats.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/core/util/balance_constants.dart';
import 'package:flutter_test/flutter_test.dart';
class _FakeSaveManager implements SaveManager {
final List<GameState> savedStates = [];
@override
Future<SaveOutcome> saveState(
GameState state, {
String? fileName,
bool cheatsEnabled = false,
}) async {
savedStates.add(state);
return const SaveOutcome.success();
}
@override
Future<(SaveOutcome, GameState?, bool)> loadState({String? fileName}) async {
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() {
late ProgressService service;
setUp(() {
const config = PqConfig();
final mutations = GameMutations(config);
service = ProgressService(
config: config,
mutations: mutations,
rewards: RewardService(mutations, config),
);
});
late final service = MockFactories.createProgressService();
test('autosaves on level-up and stop when configured', () async {
final saveManager = _FakeSaveManager();
final saveManager = FakeSaveManager();
// 레벨 1에서 레벨업에 필요한 경험치
final requiredExp = ExpConstants.requiredExp(1);