Closed1
PHP¦UnitTest – よく使うassertメソッド
環境
- laravel 8
- php 7.3
- phpunit/phpunit 9.0
文字列など...
メソッド | 内容 |
---|---|
assertNull($a) |
$a がNULL |
assertEquals($a, $b) |
$a と$b が等しい |
assertSame($a, $b) |
$a と$b が型も含めて等しい |
🔍 urlを作成した時のチェックもできる
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $param);
$this->assertEquals($param['reservation_id'], $reservation->id);
// クエリが等しいか
$this->assertSame('/user/connect', parse_url($url, PHP_URL_PATH));
// パスが等しいか
🔍 画像のmimeタイプもチェックできる
$this->assertEquals(finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), base64_decode($qrImg)), 'image/svg+xml');
bool
boolのメソッドでcollectionのメソッドと組み合わせると便利
メソッド | 内容 |
---|---|
assertTrue($a) |
$a がTrue |
assertFalse($a) |
$a がfalse |
$this->assertTrue($reservations->every(function ($value, $key) use ($today) {
return (new \Carbon($value['date']))->gte($today);
})); // 全ての予約日時が$value['date']以上(あとの日付)か
配列
メソッド | 内容 | 比較の種類 |
---|---|---|
assertEmpty($ary) |
$ary が空 |
|
assertArrayHasKey($key, $ary) |
$key が$ary に配列のキーとして存在する |
緩やかな比較==
|
assertContains($value, $ary) |
$value が$ary に配列の値として存在する |
厳密な比較===
|
ファイルアップロード
UploadedFile::fake()->image('test.jpg')
とケミ🤝
メソッド | 内容 |
---|---|
assertExists($fileName) |
$fileName が保存されたか |
assertMissing($fileName) |
$fileName が存在していないか |
\Storage::disk('s3')->assertMissing($fileName);
比較
assertGreaterThan
で超えるやassertLessThan
で未満もチェックできる
メソッド | 内容 |
---|---|
assertGreaterThanOrEqual($a, $b) |
$a <= $b ($a は$b 以下/$b は$a 以上) |
assertLessThanOrEqual($a, $b) |
$a >= $b ($a は$b 以上/$b は$a 以下) |
class
たま〜〜〜〜〜〜に使う時がある
メソッド | 内容 |
---|---|
assertInstanceOf($class, $a) |
$a が$class のインスタンス |
$reflection = new \ReflectionClass('App\Services\TestService');
$method = $reflection->getMethod('testFunc');
$method->setAccessible(true);
$test = $method->invokeArgs(new \App\Services\TestService(), [$user, $corporation->id]);
$this->assertInstanceOf(Test::class, $test);
session
sessionに配列を保存する
actingAsでログインしている風のときやseesionにメッセージがあることで動作が切り替わるときなどに使う
$this->withSession(['errors' => '入力値に誤りがあります。']);
このスクラップは2021/10/22にクローズされました