Fippiyのプログラム学習内容アウトプットBlog

日々の学習内容をアウトプットして振り返りを実施する。

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件のデータを登録しておき問題なく表示が行えることを確認しました。

fippiy.hatenablog.jp

しかし、複数のユーザーが所有書籍を登録している状態で、自身のデータのみが参照できている…という点までは考慮されていません。

この点を考慮したテストを追加で行っていきます。

  • 今回の目的
    • なぜやるか
    • やりたいこと
  • 実施内容
    • 複数データをまとめて作成する
      • ユーザーを作成する
      • ランダムな数値を取得して任意ユーザーを選択
      • ユーザー毎の所有書籍情報を作成する
      • 所有書籍情報作成時に、本自体の情報も生成する
      • 選択ユーザの所有書籍情報だけが表示されていることを確認する

今回の目的

所有書籍登録情報固有テストとして、複数ユーザーデータから、ログインユーザーのみの情報が表示されていることをテストする。 

なぜやるか

 所有書籍登録確認テストは実施したが、複数ユーザー環境下でログインユーザーのみの情報が取得できていることを確認するため

やりたいこと

  • テスト用の複数ユーザーをまとめて作成する
  • 作成した複数ユーザーに対して所有書籍情報を複数作成する
  • 所有書籍情報作成時に書籍情報も作成する
  • 特定のユーザーで自身の所有書籍のみが取得できていることを確認する 

やったこと

 

続きを読む

Laravel開発、propertyテーブルをテストする【1】正常動作を確認する

アプリのテストを行うことで、動作の確認を実施しています。

書籍情報を管理しているbookdataテーブルのテストが完了したので、所有書籍情報を管理しているpropertyテーブルのテストを今回は実装していきます。

  • 今回の目的
    • なぜやるか
    • やりたいこと
    • やったこと
  • 実施内容
    • propertyテーブルを利用した動作をテストする
      • テストの実施項目を検討する
      • テスト環境の準備
    • テストコードを書く
      • indexにアクセスする
      • 所有書籍情報の一連処理を実施する
      • 所有書籍検索の処理を実施する

今回の目的

propertyテーブルに関するテストを実装し、正常動作することを確認する

動作失敗パターンは別途作成とする。

なぜやるか

プログラムによる正常動作テストを行い、問題がないか確認するため

やりたいこと

所有書籍の新規登録・編集・検索・削除の一連の動作が実施できることを確認する

やったこと

テストするべき項目を検討する

テストの準備をする

テスト用propertyファクトリーを作成する

テストコードを書く

続きを読む