Как начать модульное тестирование с использованием phpstorm - PullRequest
0 голосов
/ 20 марта 2020

Итак, во-первых, я очень плохо знаком с кодированием. Этот вопрос относится к юнит-тестированию с использованием php. Я знаю, что это должно быть очевидным, но мой вопрос в том, чтобы на самом деле использовать модульные тесты, которые я в конечном итоге создам, придется ли мне составлять некоторый код для применения тестов? Все руководства объясняют, как настроить IDE, которую я использую (phpstorm), но не дают никакого примера кода для фактического выполнения тестов. Есть ли в phpstorm функция, позволяющая вам попробовать созданные вами модульные тесты? Если мне действительно нужен пример кода, какой код я должен использовать и где его взять? Спасибо за любую помощь, спасибо.

1 Ответ

2 голосов
/ 28 марта 2020

Прежде чем начать тестирование, нужно предпринять некоторые шаги. Он работает для Ubuntu 18.04

  • установка php глобально

    ~$ sudo add-apt-repository -y ppa:ondrej/php \  
       && sudo apt-get update \
       && sudo apt-get install -y php \
       && sudo apt-get install -y php-xml \
       && sudo apt-get install -y php-mbstring
    

    для проверки успешности установки запуска ~$ php -v

  • установка composer глобально

    ~$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php'); " \  
     . "if (hash_file('sha384', 'composer-setup.php') === " \
     . "e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') " \
     . "{ echo 'Installer verified'; } " \
     . "else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
     && php composer-setup.php \
     && php -r "unlink('composer-setup.php');" \
     && sudo mv composer.phar /bin/composer
    

    для проверки успешности установки выполните ~$ composer -V (соответствующий га sh всегда включен composer официальная документация )

  • install phpunit - инфраструктура модульного тестирования для php

    project_folder$ composer require --dev phpunit/phpunit

    эта команда создаст файлы composer.json и composer.lock, а также vendor каталог root вашего проекта.


Следуя некоторым соглашениям, я создал два файла - Math.php и MathTest.php и добавил раздел автозагрузки в composer.json

Math. php

<?php  

namespace Source;  

class Math  
{  
     public function square($number)
     {
         return $number * $number;
     }
}  

MathTest. php

<?php  

use PHPUnit\Framework\TestCase;  
use Source\Math;  

class MathTest extends TestCase  
{  
     public $math;

     public function setUp(): void
     {
         $this->math = new Math();
     }

     public function testSquareEquals()
     {
         $this->assertEquals(4, $this->math->square(2));
         $this->assertEquals(16, $this->math->square(4));
     }

     public function testSquareNotEquals()
     {
         $this->assertNotEquals(3, $this->math->square(2));
         $this->assertNotEquals(9, $this->math->square(4));
     }
}  

composer. json

{  
    "autoload": {  
        "psr-4": {  
            "Source\\": "src"  
        }  
    },  
    "require-dev": {  
        "phpunit/phpunit": "^9.0"  
    }  
}

результирующая структура проекта

project_folder  
├─── src  
│    └── Math.php  
├─── tests  
│    └── MathTest.php  
├── vendor  
├── composer.json  
└── composer.lock  

для создания файлов автозагрузки:

project_folder$ composer dump-autoload

Это все. Теперь вы можете начать тестирование, выполнив команду

project_folder$ vendor/bin/phpunit tests  
PHPUnit 9.0.1 by Sebastian Bergmann and contributors.

..                                                                  2 / 2 (100%)

Time: 28 ms, Memory: 4.00 MB

OK (2 tests, 4 assertions)

, где tests - каталог с вашими тестами.

Больше примеров в официальной документации phpunit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...