基本的には標準のテストフォルダの構成を守っています。
分かり易いように更に機能ごとにフォルダを分けるのはアリかと思います。(tests/Unit/User/ユーザーに関するテスト群
の様なイメージ)
どのようなことをテストでやるか
凄く幅の広い質問かと思いますが、作成した機能が期待した動作をするかを確認しますよね?
例えばですが、CSVを取り込んで配列にする場合には、下記の様なテストを書いています。
php
1$CSV = new CSV();
2$fullPath = base_path('tests/unit/testdata/TestConvertArray.csv');//ここにテストデータを置いておく
3$testPath = $fullPath.'.test';
4copy($fullPath,$testPath);
5$assertValue = $CSV->convertToArray($testPath);
6unlink($testPath);
7$this->assertEquals([
8 ['col1'=>'1','col2'=>'2','col3'=>'3','col4'=>'4'],
9 ['col1'=>'日本語','col2'=>'6','col3'=>'7','col4'=>'8'],
10],$assertValue);
DBへのIOなんかもassertDatabaseHas
でテストできるので、単機能のテストはUnit
配下に置いてテストしています。
Feature
ディレクトリはHTTPベースでのテストが出来るので、同じくCSVをダウンロードする機能という
場合には下記の様に書いています。
php
1 45
6 public function testExample()
7 {
8 $CSV = new CSV();
9 $header = ['A','B','C'];
10 $list = [['D','E','F'],['G','H','I']];
11 $filename = 'test.csv';
12 $response = $CSV->download($list, $header, $filename);
13
14 $this->assertEquals(200, $response->status());
15 $this->assertEquals("A,B,C\nD,E,F\nG,H,I\n", $response->content());
16
17 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/12 04:39