プロジェクト

全般

プロフィール

リファクタ #174

完了

JudgeManager のテスト追加と責務分割方針を検討する

リファクタ #174: JudgeManager のテスト追加と責務分割方針を検討する

エージェント ちゃん さんが25日前に追加. 8日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/11
期日:
進捗率:

100%

予定工数:

説明

Redmine #165 のコードベースレビューからの派生タスクです。

背景

src/bms/player/beatoraja/play/JudgeManager.java は約 888 行の中核クラスですが、Manager 本体を対象にしたテストが不足しています。判定処理は gameplay 回帰リスクが高いため、まずテスト追加を優先します。

対応内容

  • JudgeManager の主要な入力・判定・状態更新パスを洗い出す。
  • 既存の JudgeAlgorithmTest と重複しない範囲で、Manager 層の回帰テストを追加する。
  • テスト容易性を妨げる依存があれば、挙動を変えない小さな責務分割を検討する。
  • 大規模な設計変更が必要な場合は別 issue 化する。

確認観点

  • 判定タイミング、LN、ミス、ゲージ・スコア連携に回帰がないこと。
  • テストが実装詳細に過度に依存しないこと。

関連するチケット 2 (0件未完了2件完了)

関連している beatoraja - リファクタ #165: コードベースの棚卸完了いづ さん2026/06/11

操作
関連している beatoraja - リファクタ #446: JudgeManager.update() の責務分解と Manager 本体のテスト化完了いづ さん2026/06/28

操作

いづ さん さんが25日前に更新 操作 #1

いづ さん さんが22日前に更新 操作 #2

  • 対象バージョンBacklog にセット

いづ さん さんが12日前に更新 操作 #3

  • 対象バージョンBacklog から 1.2.1 に変更

いづ さん さんが10日前に更新 操作 #4

  • 対象バージョン1.2.1 から Backlog に変更

いづ さん さんが8日前に更新 操作 #5

  • 対象バージョンBacklog から 1.3.1 に変更

エージェント ちゃん さんが8日前に更新 操作 #6

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

実装に着手しました。

  • ブランチ: feature/174
  • 対応方針: JudgeManager のコンボ計数・判定レーン色・直近判定バッファを挙動不変で小さく切り出し、Manager層の回帰テストを追加する(update() 全体の分解は別issue提案)。

エージェント ちゃん さんが8日前に更新 操作 #7

  • 関連している リファクタ #446: JudgeManager.update() の責務分解と Manager 本体のテスト化 を追加

エージェント ちゃん さんが8日前に更新 操作 #8

  • ステータス実装中 から 完了 に変更
  • 進捗率10 から 100 に変更

対応が完了しました。

概要

中核クラス JudgeManager(888行)のゲームプレイ回帰リスクが高い純粋ロジックを挙動不変で切り出し、Manager 層の回帰テストを追加した。update() 本体の分解は依存が深く大規模変更のため、別 issue #446 へ切り出した。

変更点

  • ComboState(新規, package-private): updateMicro 内インラインのコンボ計数(combo/coursecombo/coursemaxcombo, combocond 連動)を切り出し。JudgeManager は委譲のみで挙動不変、public API シグネチャも維持。
  • JudgeLaneColor(新規, package-private): 判定→レーン/レーザー色マッピングを純粋関数化。
  • テスト追加: ComboStateTest(6) / JudgeLaneColorTest(5) / JudgeRecentTimingBufferTest(4) 計 15 件。
  • 変更ファイル: src/bms/player/beatoraja/play/JudgeManager.javaComboState.javaJudgeLaneColor.java、及びテスト 3 件(計 6 ファイル)。

テスト

  • .\gradlew.bat test(Judge 系ターゲット実行): 成功。新規 15 件すべて緑、既存 JudgeAlgorithmTest(5)/JudgeAutoAdjusterTest(6) も緑で回帰なし。

関連 MR

  • !124 (feature/174 → develop) マージ済み

派生 issue

  • #446 「JudgeManager.update() の責務分解と Manager 本体のテスト化」を起票(relates #174)。

他の形式にエクスポート: PDF Atom