>本文为当代PHP开发环境提供了PHPUnit的现代介绍。 我们将构建一个简单的命令行工具,该工具将JSON转换为PHP数组,并沿途演示PHPUNIT概念。
我们假设熟悉面向对象的PHP(PHP 7或更高)。 对于简化的设置,请使用改进的Homestead改进,该设置已预先安装PHP 7并简化了该过程。 涉及一些命令行的用法,但我们将指导您完成。
>密钥概念:
composer require phpunit/phpunit --dev
>phpunit.xml
首次测试:PHPUnitFrameworkTestCase
数据提供商:assertEquals
在编写代码本身之前的表现。 断言(
,等)检查代码是否符合期望。 失败的测试表明需要更改代码。>
> phpunit概述:assertEquals
Phpunit提供工具(类和可执行文件),以简化测试写作和分析。 它生成显示代码质量,覆盖范围等的报告。assertTrue
>
>示例应用程序:JSON到PHP数组转换器
>我们将创建一个命令行工具将JSON文件转换为PHP数组。 假设使用作曲家的PHP 7环境。 如果使用宅基地改进,进入VM()。
项目设置:ssh
vagrant ssh
前控制器(converter/public中的index.php):
<code class="language-bash">cd Code git clone https://github.com/php-pds/skeleton converter cd converter composer require phpunit/phpunit --dev rm bin/* src/* docs/* tests/*</code>
> phpunit.xml:
<code class="language-php"><?php echo "Hello world";</code>
<code class="language-bash">cd Code git clone https://github.com/php-pds/skeleton converter cd converter composer require phpunit/phpunit --dev rm bin/* src/* docs/* tests/*</code>
composer.json(更新):(将模板值替换为项目详细信息)
<code class="language-php"><?php echo "Hello world";</code>
运行composer dump-autoload
>首次测试(Tests/sitePoint/Converter/ConverterTest.php):
<code class="language-xml"><?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="tests/autoload.php"> <testsuites> <testsuite name="converter"> <directory suffix="Test.php">tests</directory> </testsuite> </testsuites> </phpunit></code>
>运行测试()php vendor/bin/phpunit
(最初期望失败)>
<code class="language-php"><?php require_once __DIR__ . '/../vendor/autoload.php';</code>
>
>使用数据提供商清洁代码的数据提供程序以及使用XDEBUG设置代码覆盖范围报告,以上是重新引入PHPUNIT:从PHP开始使用TDD的详细内容。更多信息请关注PHP中文网其他相关文章!