2016-06-20 5 views
2

私は統一テストを初めて行いました。テストする正しいシナリオを特定するのが難しいです。ユニットテスト - テストシナリオの特定

主に私は(Laravel 5を使用して)私のウェブサイトの機能を以下している:

ビューページ

  1. HTMLにそのデータモデル

  2. パスを使用してDBから値を取得しますコントローラを介してテンプレート

  3. データをHTMLテンプレートで表示して、

//ビュー

public function getStudents(){ 

$students = Student::all(); // model: get all the students from Database 
$data['students'] = $students; 
return view('views/students', $data);// Pass data into the view 

} 

編集/ページ

  1. ビューファイルからの入力データを取得作成

  2. 検証

  3. 保存/更新DBと印刷成功メッセージ。

    パブリック関数editStudent($のID){

    //grab input data 
    
    //validate 
    
    //save in DB 
    

    }シナリオの上

はかなりまっすぐ楽しみにしています。限り、私はデータベースのエントリを取得する 私は成功の出力を得る。無効な入力は、検証(クライアント側/サーバー側)でフィルタリングできます。上記の関数の単体テストを書く必要がありますか?テストシナリオは何ですか?

実際のテスト例を教えてもらえますか?

このウェブサイトは主にCRUD操作が80%あります。それ以外は私が持っている:

  1. 日付をフィルタリングする機能があります。 ex:入力date1、date2 - DB結果はこれらの2つの日付の間に来るでしょう。

  2. 一部のグローバル機能。例:書式の日付時刻、通貨。 ACL機能

答えて

1

私の意見では、DBからの取得に失敗した場合のテストシナリオがありますか?この場合、例外をキャッチし、適切なエラーメッセージを表示する必要があります。次に、検索が期待どおりに動作するかどうかをテストする必要があります。

1st - データベースからの取得が失敗したときにテストします。
第2 - データベースからの取得が成功すると、データがビューに表示されることをテストします。、これら2つのシナリオは十分なものでなければならない私の意見で

$this->visit('/') 
      ->see('Laravel'); 

:あなたは第二のシナリオをテストするためにこれを使用することができます。お役に立てれば。

1

私の意見によれば、コントローラー機能をビュー でテストすると、そのモデルをモックできます。この理由は、これらの種類の関数は、正しいビューが特定のデータでロードされていることを確認します。

ただし、編集と保存のたびに、これらのデータ保存が実際に行われているかどうかを確認するための統合テストを作成する必要があります。他のデータベースに関連するネイティブSQL関数を使用しないと、統合テストにsqlite dbを使用できます

関連する問題