教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHPUnit 安装步骤与单元测试例子

PHPUnit 安装步骤与单元测试例子

发布时间:2023-05-10   编辑:jiaochengji.com
教程集为您提供PHPUnit 安装步骤与单元测试例子等资源,欢迎您收藏本站,我们将为您提供最新的PHPUnit 安装步骤与单元测试例子资源
本文章来为各位介绍一篇关于PHPUnit 安装步骤与单元测试例子,希望大家可以跟着小编一起来学习PHPUnit哦,具体的如下。

1、概述及配置
Laravel 中集成了PHPUnit进行单元测试,实际上,使用PHPUnit进行单元测试在Laravel中是开箱即用的,测试的配置文件为根目录下的phpunit.xml,该配置文件为我们做好了所有配置工作:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="bootstrap/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false"
         syntaxCheck="false">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory suffix=".php">app/</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>
</phpunit>
testsuites中定义了测试文件存放路径为根目录下的tests目录。

filter中定义了需要进行单元测试的PHP文件存放位置。

php中配置了测试环境的环境变量,默认APP_ENV为testing,缓存驱动被设置为array,Session驱动被设置为array,队列驱动被设置为sync。

2、安装PHPUnit
使用Laravel的测试功能之前需要先安装PHPUnit,以Homestead虚拟机为例,安装步骤如下:

wget https://phar.phpunit.de/phpunit.phar
chmod x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit
然后查看PHPUnit的版本验证是否安装成功:

phpunit --version
3、使用PHPUnit实现简单测试
接下来我们使用Laravel提供的ExampleTest.php实现简单单元测试,首先我们修改tests目录下的ExampleTest.php文件如下:

<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class ExampleTest extends TestCase
{
    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->visit('/')
            ->see('Laravel学院');
    }
}
其中visit方法用于访问指定路由页面,see方法则判断返回响应中是否包含指定字符串。

然后在routes.php中确保包含如下路由(如果没有的话添加该路由):

Route::get('/',function(){
    return view('welcome');
});
访问http://laravel.app:8000/,页面显示如下内容:

Laravel学院测试应用首页

然后到项目根目录下运行如下命令:

phpunit
输出结果如下:

Laravel学院测试应用首页

表示测试通过。

接下来我们修改ExampleTest.php测试方法如下:

public function testBasicExample()
{
    $this->visit('/')
        ->see('LaravelAcademy');
}
再次运行phpunit,则显示测试失败信息(部分截图):

 

Laravel单元测试失败输出

 

……

 

Laravel单元测试失败输出

测试结果会显示错误数目,错误位置及错误原因,方便我们快速定位错误并进行修复。

您可能感兴趣的文章:
PHP单元测试工具PHPUnit安装详解
php单元测试怎么写
PHPUnit教程(二)PHPUnit基本用法
PHPUnit教程(一)PHPUnit介绍及安装
php有必要做单元测试吗
php安装xdebug、pear/phpunit的图文详解
PHPUnit教程(六)Fixture
PHPUnit单元测试的小例子
PHPUnit教程(三)测试方法进阶
书评Object-Orientated Programming with PHP5

[关闭]
~ ~