目的
- Unitテストを実行したらエラーが発生したので解決方法とこのエラーの原因をまとめておく
エラーまでの経緯
-
アプリ名ディレクトリで下記コマンドを実行してテストクラスのファイルを作成した。
$ php artisan make:test UserServiceTest --unit
-
テストコードを記載後、アプリ名ディレクトリで下記コマンドを実行してテストを実行した。
$ vendor/bin/phpunit tests/Unit/UserServiceTest.php
エラー
-
Unitテストを実行したら下記のようなエラーが出た
Error: Call to a member function connection() on null
解決までの経緯
-
問題のテストコードを下記に記載する。
<?php namespace Tests\Unit\Service; use PHPUnit\Framework\TestCase; class UserServiceTest extends TestCase { /** * A basic unit test example. * * @return void */ public function testExample() { $this->assertTrue(true); } /** * getUserInfoByUserIdメソッドのテスト * * @return void */ public function testGetUserInfoByUserId() { // テストコード } }
- 下記で回避できた。TestCaseはPHPUnit直下ではなくTests直下のものを見てもらう。
<?php
namespace Tests\Unit\Service;
// 下記を修正
use Tests\TestCase;
class UserServiceTest extends TestCase
{
/**
* A basic unit test example.
*
* @return void
*/
public function testExample()
{
$this->assertTrue(true);
}
/**
* getUserInfoByUserIdメソッドのテスト
*
* @return void
*/
public function testGetUserInfoByUserId()
{
// テストコード
}
}