プロジェクト

全般

プロフィール

リファクタ #446

完了

JudgeManager.update() の責務分解と Manager 本体のテスト化

リファクタ #446: JudgeManager.update() の責務分解と Manager 本体のテスト化

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

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

100%

予定工数:

説明

Redmine #174 からの派生タスク。

背景

#174 では JudgeManager の純粋ロジック(コンボ計数 ComboState、判定色 JudgeLaneColorJudgeRecentTimingBuffer)を挙動不変で切り出して Manager 層の回帰テストを追加したが、中核の JudgeManager.update() 本体(約 430 行)は BMSPlayer / MainController / TimerManager / BMSPlayerInputProcessor / AudioDriver / GrooveGauge に深く結合しており、本体を直接テストできていない。

対応内容

  • update() の入力処理・LN/CN/HCN 状態機械・autoplay 処理・見逃しPOOR判定を、挙動を変えずにテスト可能な単位へ分解する。
  • BMSPlayer / MainController / TimerManager / AudioDriver / GrooveGauge にモック境界(seam)を導入し、LN 押し・離し、CN/HCN、BSS、オートプレイ、見逃しPOOR の各パスの回帰テストを追加する。
  • 判定タイミング、ゲージ/スコア連携、タイマー連携に回帰がないことを担保する。

補足

本件は #174 で「大規模な設計変更が必要な場合は別 issue 化する」方針に従い切り出したもの。設計影響が広いため、着手前に設計方針の検討を推奨。


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

関連している beatoraja - リファクタ #174: JudgeManager のテスト追加と責務分割方針を検討する完了いづ さん2026/06/11

操作
関連している beatoraja - リファクタ #448: JudgeManager.update() のモック境界導入と各パス回帰テスト完了いづ さん2026/06/28

操作

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