Quantcast
Channel: laravel5.8タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 87

PHPUnit8.5と7.5メモ【with laravel 6 & laravel 5.8】

$
0
0

概要

同時に使っていたら少しずつ違って混乱したので、メモ

環境

  • laravel 6.7.0 / PHPUnit 8.5.0
  • laravel 5.8 / PHPUnit 7.5

をそれぞれ使い比べた

特定の環境下のみでテストは実行したい

setUpBeforeClassに定義する。
実行順からして、setUpBeforeClass内では一手間(後述)加えないとlaravelのヘルパーは使えない。

との話でしたが、 laravel 6.7 / PHPUnit 8.5では問題ありませんでした。
laravel6、またはPHPUnit8から仕様が変わっているのではと思います。

publicstaticfunctionsetUpBeforeClass():void{parent::setUpBeforeClass();if(config('app.env')==='local'){// ごにょごにょ}}

dataProviderでEloquentなどlaravelの機能使いたい

dataProviderはsetUpBeforeClassよりも先に実行されるためlaravelのクラス等が使用出来ないので一手間使う。

こちらは laravel 6.7 / PHPUnit 8.5でもエラーが発生した。

laravelの初期化を行うメソッドを実行するか、

publicfunctionaddProvider(){$this->refreshApplication();}

クロージャ内ならば実行出来る。

publicfunctionaddProvider(){return['test1'=>function(){returnArticle::all();},'test2'=>function(){returnArticle::all();}]}

Viewing all articles
Browse latest Browse all 87

Trending Articles