実装を
と、言いつつ検討ばかりで修正全然してない。(駄目
とりあえず TDD ってコトで試験から書き始めてみる。と言いつつ文章書いてるんでまだ検討の範疇か。試験の要件を以下に列挙してみよう。
- Setting クラスの試験は不要
- Configuration クラスについてはデフォルト値の確認が必要?? (たぶん必要)
- 初期値は {} であること
- がしかし config を参照したらデフォなナニが返却される事
- ConfigManager クラスの public なメソドは以下
- ConfigManager#initialize
- ConfigManager#reload
- ConfigManager#[]
- ConfigManager.fields
- 現時点で実装している試験は以下のようなカンジ
- setup で reload してる値を確認
- 設定値を変更、save した後に reload して config の値確認
- データを保存してないユーザ ID で reload してデフォルト値の確認
- 以下のようなカタチに修正
- test_initialize
- 引数ナシで reload 呼ぶ処理なんで config がデフォかどうかを確認
- Configuration.fields.each か何かで纏めて処理可能
- test_reload_noarg
- DRY 的には test_initialize とカブってるんですが ...
- とりあえず書いとく
- てか、assert をまとめりゃいいのか
- test_reload_exist_user
- Setting.update して reload かけた後に config の状態確認もする
- test_reload_not_exist_user
- config がデフォかどうかを確認 (まとめた assert が使える)
- test_[]
- invalid なキーでのアクセス
- vlid なキーでのアクセス
- test_fields
- Hash である事
- 値は Item クラスのインスタンスである事
- デフォなナニが格納されている事
- test_initialize
さ、実装はいつになるのか。
追記
ConfigManager のメソド、という形で切り分けてるけど、試験としては Configuration クラスの試験、という形を取った方が良いのかなぁ。ConfigManager の試験にするんだったら、config 使うとダウトっぽい気がする。