操作
リファクタ #455
完了skin property: 分割前の先行互換テストを整備する(Phase 0)
リファクタ #455:
skin property: 分割前の先行互換テストを整備する(Phase 0)
説明
#176 の整理方針に基づく Phase 0。責務分割・共通化の前に、現状の振る舞いをロックする互換テストを先に追加する。後続リファクタ(Phase 1〜3)の安全網となる。
背景¶
既存の SkinPropertyFactoryRegistryTest は enum 登録(ValueType / FloatType / RateType / StringType / IndexType / BooleanType / EventType)の id・name 解決を網羅しているが、以下は未カバーの seam:
-
IntegerPropertyFactory#getIntegerProperty0/BooleanPropertyFactory#getBooleanProperty0の巨大 switch フォールバックの各 case。 - 算術範囲ハンドラ(judge / key / player offset、
NUMBER_PERFECT2〜、NUMBER_RELEASE_SPEED_KEY*等のif (optionid >= X && optionid <= Y)ブロック)の解決と値。 -
SkinPropertyMapperの id 算術ヘルパ。
対応内容¶
-
switch 経路の網羅:
getIntegerProperty0/getBooleanProperty0(および String / Float のフォールバック)の全 case が id から non-null 解決されることを検証するテストを追加。 - 算術範囲の検証: judge/key/player offset 系の代表的な id が解決され、期待値を返すことを検証。
-
SkinPropertyMapper の round-trip テスト:
keyJudgeValueId↔getKeyJudgeValuePlayer/getKeyJudgeValueOffset、bombTimerId/holdTimerIdの境界、isCustomTimerId/isCustomEventIdの範囲、getSkinSelectType↔skinSelectTypeIdの round-trip。 -
ゴールデン契約テスト: 同梱の
skin/default配下の JSON スキン(追跡済 27 ファイル)を読み、参照される全 property name / id が non-null 解決されることを assert。誤削除・誤リネームを検出できる。
確認観点¶
- このチケットはテスト追加のみで本体コードは変えない(現状振る舞いのロックが目的)。
- JSON / LR2 / Lua の互換を崩さないことをテストで表現する。
操作