かんたんなTODOアプリを作る(5回目)

今回も今までと同じ仕様でTODOアプリを作成しました。
課題は「テストを書きながらコードを実装すること」
このくらいの簡単なアプリだとテストを書く部分がそもそも少ないと思いますが、とりあえずやってみました。

つまずいた部分

titleとdescription属性を持つTaskオブジェクトのeditをテストしたとき

 test "successful edit" do
  get edit_task_path(@task)
  assert_template 'tasks/edit'
  patch task_path(@task), params: { task: { title: "タスクタイトル変更",
                                            description: "変更しました" } }
                                        
  assert_equal @task.title, "タスクタイトル変更"
  assert_equal @task.description, "変更しました"
 end

これでテストを実行したところ、assert_equal @task.title, "タスクタイトル変更"が引っかかりました。

@task.reloadが抜けていましたね……
データベースから値を取得し直すメソッドで、Railsチュートリアルでも使いました。
 

気づいた点

  • コントローラーのテストはrails-controller-testingというgemをインストールしないと行えない
  • テスト駆動開発を行うには、アプリケーションにどのような機能を追加するのか(どんな動きをさせるのか)をしっかりと理解している必要がある
  • テストの書き方にはRSpecというものもあるらしい


今後の課題

  • 同じものをより早く作れるようになる
  • テストを書きながら作業を進める
  • git管理の方法のひとつ?であるgit-flow?を身につける
  • bootstrapを使ってみる
  • 機能の充実