かんたんな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を使ってみる
- 機能の充実