底辺SE奮闘記

年収300万SEブログ

【Laravel】ユニットテストで「Call to a member function connection() on null」と表示され失敗する

自分用メモ

環境

  • PHP 7.2.5
  • laravel/framework 7.24

現象

根本原因はよくわかっていないのですが、

php artisan make:test HogeTest --unit

で作成した、DB操作系テストが

Call to a member function connection() on null

と表示され失敗した。

失敗のコード

<?php
namespace Tests\Unit\Model;

use App\Model\HogeTest;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Support\Facades\DB;
use PHPUnit\Framework\TestCase;

class HogeTest extends TestCase
{
    use DatabaseTransactions;

    public function testExample()
    {
        HogeModel::insert([
            "hoge" => "ほげ"
        ]);
    }
}

成功のコード

<?php
namespace Tests\Unit\Model;

use App\Model\HogeTest;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Support\Facades\DB;
//use PHPUnit\Framework\TestCase;// こちらを削除
use Tests\TestCase;// こちらを追加

class HogeTest extends TestCase
{
    use DatabaseTransactions;

    public function testExample()
    {
        HogeModel::insert([
            "hoge" => "ほげ"
        ]);
    }
}

原因はよくわかっておりません。