首页 > 解决方案 > 如何使用 phpstorm 开始单元测试

问题描述

所以首先,我对编码很陌生。这个问题与使用 php 进行单元测试有关。应该很明显,我知道,但我的问题是,为了实际使用我最终将创建的单元测试,我是否还必须编写一些代码来应用测试?所有教程都解释了如何配置我正在使用的 IDE (phpstorm),但没有提供任何示例代码来实际执行测试。phpstorm 中是否有内置功能允许您尝试创建的单元测试?如果我确实需要示例代码,我应该使用什么样的代码以及从哪里可以得到它?任何帮助表示赞赏,谢谢。

标签: phpunit-testing

解决方案


在开始测试之前,需要采取一些步骤。它适用于 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

  • 全局安装作曲家

    ~$ 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 (相关哈希始终在作曲家官方文档中)

  • 安装 phpunit - php 的单元测试框架

    project_folder$ composer require --dev phpunit/phpunit

    此命令将创建composer.jsoncomposer.lock文件,vendor以及项目根目录中的目录。


按照一些协议,我创建了两个文件 -Math.php并将MathTest.php自动加载部分添加到composer.json

数学.php

<?php  

namespace Source;  

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

数学测试.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));
     }
}  

作曲家.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 官方文档中的更多示例


推荐阅读