如何使用phpstorm开始单元测试

问题描述 投票:0回答:1

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

php unit-testing
1个回答
0
投票

开始测试之前,需要采取一些步骤。它适用于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(相关哈希始终在composer official documentation上]

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

    project_folder$ composer require --dev phpunit/phpunit

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


按照某些协议,我创建了两个文件-Math.phpMathTest.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 official documentation中的更多示例

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.