Perl (Mojolicious) を使って web アプリ開発に挑戦 (第6回)

第6章 テストコードと機能追加実装を同時にすすめる 今回は機能を実装しながらテストコードを実装してみますが、テストコードというのは一度作ると削除するのが難しくなり、最終的に実装のコードより大掛かりなことになってしまい、テストコード自体のメンテナンスが負担になることがあったりします。実装コードもそうですが、小さい単位で作るというのはとても大事なことです。 ここではテストコードの小さい単位での実装方法を紹介してみたいと思います。 6.1 テストコード拡張の準備 投稿記事の削除機能とそのテストコードを実装したいと思います。アクセスURLと画面遷移は下記のようなイメージになります。 URL: POST - `/remove` - remove 掲示板の削除実行 画面遷移 一覧`/list`の表示記事ヨコの「削除」ボタンクリック `/remove`アクション実行 削除実行後、一覧画面に遷移、削除完了のメッセージ表示 実際のソースコードはこちらの github からみれます。 https://github.com/Becom-Developer/beginning-mojo/tree/master/chapter6/section1 6.1.1 テストファイルを追加 % touch t/remove.t t/remove.t の中身は下記のようにしておきます。 # 暫定的にトップページのリクエストテストを書いておく use Mojo::Base -strict; # ... 省略 subtest '/' => sub { $t->get_ok('/')->status_is(200); }; done_testing(); 6.1.2 既存のテストファイルと共通化の仕組みをつくる % mkdir -p lib/Test/Mojo/Role % touch lib/Test/Mojo/Role/Basic.pm lib/Test/M