本教程已经过时了。 有关PHPUNIT的当前介绍,请参阅我们最近发布的最新指南。
>开始之前,请确保安装phpunit。 说明可在phpunit手册中找到,网址为https://www.php.cn/link/991C09555DA2313335E4864D3389698FD5
>。创建您的第一个测试
我们将从代表用户的简单php类开始:
<?php class User { protected $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function talk() { return "Hello world!"; } }为了测试用户的问候,我们创建了一个测试类,
。 测试类名称通常反映了正在测试的类。 测试类包括经过测试的类和Phpunit的自动加载:UserTest
>
<?php require_once "PHPUnit/Autoload.php"; require_once "User.php"; class UserTest extends PHPUnit_Framework_TestCase { }每个测试是此类中的一种方法。 我们使用
来验证问候:assertEquals()
<?php ... class UserTest extends PHPUnit_Framework_TestCase { public function testTalk() { $user = new User(); $expected = "Hello world!"; $actual = $user->talk(); $this->assertEquals($expected, $actual); } }
利用phpunit固定装置 在每种测试方法中反复设置对象效率低下。 Phpunit固定装置在每个测试之前都建立一个状态,然后将其重置。 我们覆盖
来创建和初始化用户:
setUp()
每次测试后,
<?php ... class UserTest extends PHPUnit_Framework_TestCase { protected $user; protected function setUp() { $this->user = new User(); $this->user->setName("Tom"); } }
tearDown()
现在,
<?php ... class UserTest extends PHPUnit_Framework_TestCase { ... protected function tearDown() { unset($this->user); } }
testTalk()
<?php ... class UserTest extends PHPUnit_Framework_TestCase { ... public function testTalk() { $expected = "Hello world!"; $actual = $this->user->talk(); $this->assertEquals($expected, $actual); } }
>使用从终端运行测试。 一个。表示成功的测试,而“ F”表示故障。 其他字符表示错误,跳过测试或不完整的测试。
phpunit
处理测试失败
>修改类以返回“ blubb”,而不是“ Hello World!”将导致测试失败,提供详细的错误信息。
User
结论
>本简介展示了Phpunit的简单性。 进一步探索其能力;实验,从错误中学习,并查阅Phpunit手册以获取高级技术和断言方法。 提供的代码(在Github上可用)使用Composer进行依赖关系管理; 语句应调用
。 使用。
require
vendor/autoload.php
图像通过Acripoch / Shutterstock ../vendor/bin/phpunit UnitTest UserTest.php
>
以上是phpmaster |开始使用phpunit的详细内容。更多信息请关注PHP中文网其他相关文章!