>本文為當代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):
cd Code git clone https://github.com/php-pds/skeleton converter cd converter composer require phpunit/phpunit --dev rm bin/* src/* docs/* tests/*
> phpunit.xml:
<?php echo "Hello world";
cd Code git clone https://github.com/php-pds/skeleton converter cd converter composer require phpunit/phpunit --dev rm bin/* src/* docs/* tests/*
composer.json(更新):(將模板值替換為項目詳細信息)
<?php echo "Hello world";
運行composer dump-autoload
>首次測試(Tests/sitePoint/Converter/ConverterTest.php):
<?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>
>運行測試()php vendor/bin/phpunit
(最初期望失敗)>
<?php require_once __DIR__ . '/../vendor/autoload.php';
>
>使用數據提供商清潔代碼的數據提供程序以及使用XDEBUG設置代碼覆蓋範圍報告,以上是重新引入PHPUNIT:從PHP開始使用TDD的詳細內容。更多資訊請關注PHP中文網其他相關文章!