Ответы пользователя по тегу Laravel
  • Как правильно писать phpunit тесты?

    Shark13
    @Shark13
    Корректный тест для данного кода:
    <?php
    
    namespace Tests\Feature;
    
    use App\Services\ContentService;
    use GuzzleHttp\Client;
    use Tests\TestCase;
    
    class ContentServiceTest extends TestCase
    {
        public function testSqrt(): void
        {
            $client = new Client();
            $o = new ContentService($client);
            $this->assertEquals(4, $o->sqrt(16));
        }
    }


    Также желательно указывать аннотации в тестах, для точного сопоставления того что тестируется. Если не указать аннотации, то при построении отчета по code coverage будут учтены не только тестируемые методы, а вообще все вызовы, что использовались в рамках тестирования
    <?php
    
    namespace Tests\Feature;
    
    use App\Services\ContentService;
    use GuzzleHttp\Client;
    use Tests\TestCase;
    
    /**
     * @coversDefaultClass \App\Services\ContentService
     */
    class ContentServiceTest extends TestCase
    {
        /**
         * @covers ::sqrt
         */
        public function testSqrt(): void
        {
            $client = new Client();
            $o = new ContentService($client);
            $this->assertEquals(4, $o->sqrt(16));
        }
    }
    Ответ написан