#はじめに
webアプリを製作する上で動作に不具合があってはいけません。それを確かめるために動作確認をしますが、1つ1つ確認していくのには時間がかかります。
しかし動作を確認するためのコードを書き、そのコードを実行して自動で確認するという方法があるのでテストコードを理解するためにもアウトプットとして投稿したいと思います。
#テストコードとは
アプリの実装が終わったら自らを動かして確かめることができます。
例えば・・・
ユーザー管理機能の実装が終わり、ニックネームが空の場合登録できないので確かめてみる。。。
よし登録できない!
次はメールアドレスだ!空にして送信。登録できてない!成功!
と確かめなけらばなりません。
#テストコードを書く意義
###ブラウザ上で手動で確認するのはデメリットが多い
アプリの挙動を確かめるには様々な挙動を確かめなければなりません。
-
ユーザーがログインしているときは投稿ができる
-
投稿したユーザーがその投稿の編集ができる
など細かい作業があるのでもしかしたら人為的的なミスが起きるかもしれません。
もう一つはどのように確かめたかが残りません。
テストコードを書けば1つづつ何を検証したのか記述が残ります。
###テストコードを書けばアプリの仕様が理解できる
テストコードは仕様を理解してないと書くことはできません。
テストする項目を洗い出すことができ、仕様を見極めることができます。
#テストコードのパターンについて
大きく分けて2つあります。
「うまくいくとき」「うまくいかないとき」 のパターンです。
ユーザー登録の項目を全て正しく入力した時登録される←正常系
ニックネームが空のとき登録できない←異常系
テストコードの種類も2つあります。
###単体テスト
モデルやコントローラーなどの機能ごとに問題がないか確かめます。たとえば、ユーザー登録におけるUserモデルのテストコードでは「ニックネームがないと登録できない」というバリデーションの挙動を確認します。
###結合テスト
ユーザーがブラウザで操作する一連の流れを再現して、問題がないか確かめます。たとえば、ユーザー登録における新規登録のテストコードでは「全てに入力して新規登録ボタンを押すと、新規登録完了ページに移動し、TOPページに戻るとさきほどマイページが表示されている」という流れを一気に確かめます。