所以首先,我对编码非常陌生。这个问题与使用php进行单元测试有关。我知道应该很明显,但是我的问题是,为了实际使用最终要创建的单元测试,我是否还必须组成一些代码来应用测试?所有的教程都解释了如何配置我正在使用的IDE(phpstorm),但没有提供任何示例代码来实际执行测试。 phpstorm中是否有内置功能,可让您尝试创建的单元测试?如果实际上我确实需要示例代码,那么应该使用哪种代码,以及从哪里获得?感谢您的任何帮助,谢谢。
开始测试之前,需要采取一些步骤。它适用于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.json
和composer.lock
文件,以及在项目根目录下的vendor
目录。
按照某些协议,我创建了两个文件-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
是测试的目录。