Laravel開発、propertyテーブルをテストする【5】編集エラーテストを実装する
propertyテーブルが関係するテストを実装しています。
編集エラーテストの前にバリデーション未設定について解決を行いましたので、いよいよ編集エラー時のテストを実施していきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 編集時のエラーテストを実装する
- タイトルがない場合
- propertyテーブルにまだ存在していないidを指定する
- 他人が所有している書籍情報を強制的に書き換える
- 編集時のエラーテストを実装する
今回の目的
Propertyテーブルに関連する設定で、想定されるエラーに対しての動作が正常にできていることを確認する
なぜやるか
バリデーションなどエラーに対しての処理が正常に行えている担保をとるため
やりたいこと
- 想定されるエラーに対してのエラー表示がされていることを確認する
- リダイレクト処理が正常にできていることを確認する
やったこと
- 所有書籍のタイトルを削除するとエラーとなること
- 存在しない所有書籍情報を編集しようとするとエラーとなること
- 他人の所有情報を編集できないようにする
- 他人の所有情報を編集しようとするとエラーとなること
Laravel開発、propertyテーブルをテストする【4】バリデーションを見直す
propertyテーブルが関係するテストを実装しています。
新規登録エラー時のテストまで完了したので、今回は編集エラー時のテストを実施していきます…が、
テスト実装時に未設定項目があったことに気がつきましたので、そちらの修正を先に行うことにしました。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 編集アクションのバリデーションが設定されていない
- 未設定に気づく
- バリデーションを設定する
- 新規作成時のルールを適用させる
- フォーム送信内容を確認する
- bookdata_id変更の処理はフォームには設定していない
- フォーム指定で対象idは指定済み
- エラーの内容を確認する
- バリデーションルールを見直す
- バリデーション設定方法を変更する
- 編集アクションのバリデーションが設定されていない
今回の目的
所有書籍編集について、バリデーションが未設定であった為、設定を行う。
なぜやるか
バリデーションがないため、データ編集内容がどんな内容でも受付てしまうことを防ぐため。
やりたいこと
- 編集データに対してバリデーションを設定する
- 想定するデータでない場合はアラートを返し、編集不可とする
やったこと
- バリデーション未設定アクションに対して、バリデーションを適用する
- バリデーション設定が正しく動作することを確認する
- バリデーション設定を見直す
Laravel開発、propertyテーブルをテストする【3】登録時のエラーテストを実装する
propertyテーブルが関係するテストを実装しています。
正常動作時のテストは実装しましたので、エラー時のテストを実装していきます。
bookdataテーブル時と同様に新規登録から順に作成していきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- 新規登録に対してのエラーチェック
- 登録書籍タイトル未入力をチェックする
- 登録書籍重複をチェックする
- 他人ユーザーで登録する
- 新規登録に対してのエラーチェック
今回の目的
Propertyテーブルに関連する設定で、想定されるエラーに対しての動作が正常にできていることを確認する
なぜやるか
バリデーションなどエラーに対しての処理が正常に行えている担保をとるため
やりたいこと
- 想定されるエラーに対してのエラー表示がされていることを確認する
- リダイレクト処理が正常にできていることを確認する
やったこと
- 書籍タイトルなしで登録する
- 登録されていない書籍を登録する
- Property登録済み書籍を重複登録する
- 他人ユーザーで登録しようとする
Laravel開発、propertyテーブルをテストする【2】Property固有の正常動作テストを追加実装する
前回の内容では1件のデータを登録しておき問題なく表示が行えることを確認しました。
しかし、複数のユーザーが所有書籍を登録している状態で、自身のデータのみが参照できている…という点までは考慮されていません。
この点を考慮したテストを追加で行っていきます。
- 今回の目的
- なぜやるか
- やりたいこと
- 実施内容
- 複数データをまとめて作成する
- ユーザーを作成する
- ランダムな数値を取得して任意ユーザーを選択
- ユーザー毎の所有書籍情報を作成する
- 所有書籍情報作成時に、本自体の情報も生成する
- 選択ユーザの所有書籍情報だけが表示されていることを確認する
- 複数データをまとめて作成する
今回の目的
所有書籍登録情報固有テストとして、複数ユーザーデータから、ログインユーザーのみの情報が表示されていることをテストする。
なぜやるか
所有書籍登録確認テストは実施したが、複数ユーザー環境下でログインユーザーのみの情報が取得できていることを確認するため
やりたいこと
- テスト用の複数ユーザーをまとめて作成する
- 作成した複数ユーザーに対して所有書籍情報を複数作成する
- 所有書籍情報作成時に書籍情報も作成する
- 特定のユーザーで自身の所有書籍のみが取得できていることを確認する
やったこと
続きを読む
Laravel開発、propertyテーブルをテストする【1】正常動作を確認する
アプリのテストを行うことで、動作の確認を実施しています。
書籍情報を管理しているbookdataテーブルのテストが完了したので、所有書籍情報を管理しているpropertyテーブルのテストを今回は実装していきます。
- 今回の目的
- なぜやるか
- やりたいこと
- やったこと
- 実施内容
- propertyテーブルを利用した動作をテストする
- テストの実施項目を検討する
- テスト環境の準備
- テストコードを書く
- indexにアクセスする
- 所有書籍情報の一連処理を実施する
- 所有書籍検索の処理を実施する
- propertyテーブルを利用した動作をテストする
今回の目的
propertyテーブルに関するテストを実装し、正常動作することを確認する
動作失敗パターンは別途作成とする。
なぜやるか
プログラムによる正常動作テストを行い、問題がないか確認するため
やりたいこと
所有書籍の新規登録・編集・検索・削除の一連の動作が実施できることを確認する
やったこと
テストするべき項目を検討する
テストの準備をする
テスト用propertyファクトリーを作成する
テストコードを書く
続きを読む