PhpUnit基础:如何跑通一个单元测试

发表于:2017-12-28 10:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Rootrl    来源:Rootrl's blog

#
PHP
分享:
  思路
  单元测试testCase一般是放在项目根目录的tests目录下,可以建子目录对应一个模块,每一个test文件对应一个具体功能的单元测试点,然后在项目根目录建个phpunit.xml.dist来编排测试套件,测试时只用在phpunit.xml.dist所在目录运行phpunit命令即可。这里用composer主要用它的autoload。
  安装相关环境支持
  主要是安装Composer和Phpunit,具体查看相应官方文档即可,这里不细说。
  生成项目对应vendor
  根目录创建composer.json文件
  {
  "require": {}
  }
  然后执行
  composer update
  根目录下会创建一个vendor目录,这里主要用到vendor/autoload.php
  创建phpunit.xml.dist文件
  在项目根目录创建phpunit.xml.dist
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="my Test">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
  创建一个简单测试用例
  项目根目录创建tests目录,进入创建StatckTest.php文件,内容如下:
<?php
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
public function testPushAndPop()
{
$stack = [];
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack) -1]);
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
  进行单元测试
  在根目录执行:
  phpunit
  就会看到测试情况:
[rootrl@jdu4e00u53f7 unit]$ phpunit
PHPUnit 6.2.4 by Sebastian Bergmann and contributors.
.                                                                   1 / 1 (100%)
Time: 70 ms, Memory: 8.00MB
OK (1 test, 5 assertions)
  总结
  这里只是简单实例如果跑通一个单元测试的流程,各种细节技巧还需自己去看官方文档,然后通过自己实践学习。
  最后贴出我的项目目录以供参考:
unit
├── composer.json
├── phpunit.xml.dist
├── tests
│   └── StatckTest.php
└── vendor
├── autoload.php
└── composer
Share

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号