実装を

と、言いつつ検討ばかりで修正全然してない。(駄目
とりあえず 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 クラスのインスタンスである事
      • デフォなナニが格納されている事

さ、実装はいつになるのか。

追記

ConfigManager のメソド、という形で切り分けてるけど、試験としては Configuration クラスの試験、という形を取った方が良いのかなぁ。ConfigManager の試験にするんだったら、config 使うとダウトっぽい気がする。