T-DOC
  • Laravel-11
  • Laravel-10
  • Laravel-6X
  • Laravel-5.5
Dcat-Admin
  • Yii2
  • 重构2
  • Laravel-11
  • Laravel-10
  • Laravel-6X
  • Laravel-5.5
Dcat-Admin
  • Yii2
  • 重构2
  • 前言

    • 发行说明
    • 升级说明
    • 贡献导引
  • 入门指南

    • 安装
    • 配置信息
    • 文件夹结构
    • Homestead
    • Valet
    • 部署
  • 核心架构

    • 请求周期
    • 服务容器
    • 服务提供者
    • Facades
    • 契约
  • 基础功能

    • 路由
    • 中间件
    • CSRF 保护
    • 控制器
    • 请求
    • 响应
    • 视图
    • 生成 URL
    • Session
    • 表单验证
    • 错误
    • 日志
  • 前端开发

    • Blade 模板
    • 本地化
    • 前端指南
    • 编辑资源 Mix
  • 安全相关

    • 用户认证
    • API 认证
    • 用户授权
    • Email 认证
    • 加密解密
    • 哈希
    • 重置密码
  • 综合话题

    • Artisan 命令行
    • 广播系统
    • 缓存系统
    • 集合
    • 事件系统
    • 文件存储
    • 辅助函数
    • 邮件发送
    • 消息通知
    • 扩展包开发
    • 队列
    • 任务调度
  • 数据库

    • 快速入门
    • 查询构造器
    • 分页
    • 数据库迁移
    • 数据填充
    • Redis
  • Eloquent ORM

    • 快速入门
    • 模型关联
    • Eloquent 集合
    • 修改器
    • API 资源
    • 序列化
  • 测试相关

    • 快速入门
    • HTTP 测试
    • 命令行测试
    • 数据库测试
    • 测试模拟器 Mocking
  • 官方扩展包

    • Cashier 交易工具包
    • Dusk 浏览器测试
    • Envoy 部署工具
    • Horizon 队列管理工具
    • Passport OAuth 认证
    • Scout 全文搜索
    • Socialite 社会化登录
    • Telescope 调试工具

快速入门

Laravel 6 中文文档 /

本文档最新版为 10.x,旧版本可能放弃维护,推荐阅读最新版!

测试:入门指南

  • 介绍
  • 环境
  • 创建并运行测试

介绍

Laravel 天生就具有测试的基因。事实上,Laravel 默认就支持用 PHPUnit 来做测试,并为你的应用程序配置好了 phpunit.xml 文件。框架还提供了一些便利的辅助函数,让你可以更直观的测试你的应用程序。

默认情况,你的应用 tests 目录中包含两个子目录:Feature 和 Unit。单元测试是针对你的代码中非常少,而且相对独立的一部分代码来进行的测试。实际上,大部分单元测试都是针对单个方法进行的。功能测试是针对大面积代码进行的测试,包括多个对象之间的交互,甚至是对 JSON 端点的完整 HTTP 请求。

Feature 和 Unit 目录中都提供一个 ExampleTest.php 测试示例文件。安装一个新的 Laravel 应用程序之后,在命令行下运行 phpunit 命令,即可运行测试。

环境

在使用 phpunit 进行测试时,Laravel 将根据 phpunit.xml 文件设定的环境变量自动将环境设置为 testing,并将 Session 及缓存以 array 的形式存储,也就是说在测试时不会持久化任何 Session 或缓存数据。

你可以随意创建其它必要的测试环境配置。testing 环境变量可以在 phpunit.xml 文件中修改,但是在运行测试之前,请确保使用 config:clear Artisan 命令来清除配置信息的缓存!

此外,你还可以在你的项目根目录下创建一个 .env.testing 文件,在运行单元测试,或者使用带有 --env=testing 选项的 Artisan 命令时,.env 文件中的变量会被这个文件覆盖。

创建并运行测试

可以使用 Artisan 命令 make:test 创建一个新的测试用例:

// 在 Feature 目录下创建一个测试类...
php artisan make:test UserTest

// 在 Unit 目录下创建一个测试类...
php artisan make:test UserTest --unit

测试类生成之后,你就可以像平常使用 PHPUnit 一样来定义测试方法。要运行测试只需要在终端上运行 phpunit 命令即可:

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase
{
    /**
     * 一个基本的测试示例
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

注意:如果要在你的测试类中定义自己的 setUp / tearDown 方法,请确保调用了父类中的 parent::setUp() / parent::tearDown() 方法。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


原文地址:https://learnku.com/docs/laravel/6.x/tes...

译文地址:https://learnku.com/docs/laravel/6.x/tes...

Last Updated:
Contributors: Hans
Next
HTTP 测试