Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

posted at

Organization

Laravel Unitテストでエラーが発生した

目的

  • Unitテストを実行したらエラーが発生したので解決方法とこのエラーの原因をまとめておく

エラーまでの経緯

  1. アプリ名ディレクトリで下記コマンドを実行してテストクラスのファイルを作成した。

    $ php artisan make:test UserServiceTest --unit
    
  2. テストコードを記載後、アプリ名ディレクトリで下記コマンドを実行してテストを実行した。

    $ vendor/bin/phpunit tests/Unit/UserServiceTest.php
    

エラー

  • Unitテストを実行したら下記のようなエラーが出た

    Error: Call to a member function connection() on null
    

解決までの経緯

  1. 問題のテストコードを下記に記載する。

    <?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()
    {
        // テストコード
    }
}

参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?