首页 > php框架 > Laravel > 正文

laravel如何使用Pest进行测试驱动开发_Laravel Pest测试驱动开发教程

尼克
发布: 2025-10-04 22:10:02
原创
714人浏览过
先写测试再实现功能,使用Pest提升Laravel测试效率。安装Pest后编写用户列表接口测试,通过创建路由、控制器和资源使测试通过,再迭代添加认证校验等新测试并重构代码,实现安全持续的开发流程。

laravel如何使用pest进行测试驱动开发_laravel pest测试驱动开发教程

在 Laravel 中使用 Pest 进行测试驱动开发(TDD)是一种高效、简洁且富有表达力的方式。Pest 是专为 PHP 设计的现代测试框架,语法更轻量,与 PHPUnit 兼容,特别适合 Laravel 项目。下面是一个实用的入门指南,带你用 Laravel + Pest 实现 TDD。

安装并配置 Pest

要在 Laravel 项目中启用 Pest,先通过 Composer 安装:

  • composer require --dev pestphp/pest pestphp/pest-plugin-laravel
  • php artisan pest:install

执行后,Pest 会自动创建 tests/Pest.phptests/Featuretests/Unit 目录下的示例文件。Laravel 插件还提供了 RefreshDatabaseWithoutMiddleware 等常用 Trait 的快捷支持。

编写第一个测试:遵循 TDD 流程

TDD 的核心是“先写测试,再实现功能”。假设我们要开发一个 API 接口,用于获取用户列表。

先在 tests/Feature/UsersTest.php 中写测试:

use Illuminate\Foundation\Testing\RefreshDatabase;

uses(RefreshDatabase::class);

it('returns a list of users', function () {
    $user = User::factory()->create();

    $response = $this->get('/api/users');

    $response->assertStatus(200)
             ->assertJsonStructure([
                 'data' => [
                     ['id', 'name', 'email']
                 ]
             ]);
});
登录后复制

此时运行 ./vendor/bin/pest,测试会失败——这正是 TDD 的第一步:明确需求和预期行为。

实现功能使测试通过

接下来创建路由、控制器和资源响应,让测试通过。

routes/api.php 添加:

Route::get('/users', [UserController::class, 'index']);
登录后复制

生成控制器:

白瓜面试
白瓜面试

白瓜面试 - AI面试助手,辅助笔试面试神器

白瓜面试40
查看详情 白瓜面试
  • php artisan make:controller UserController

在控制器中实现逻辑:

use App\Http\Resources\UserResource;

class UserController extends Controller
{
    public function index()
    {
        return UserResource::collection(User::all());
    }
}
登录后复制

创建资源:

  • php artisan make:resource UserResource

确保 UserResource 返回 id、name、email 字段。再次运行测试,应该已通过。

重构并持续迭代

测试通过后,可以安全重构代码。比如添加分页、权限控制或优化查询。每一步都先修改或新增测试,再调整实现。

例如,增加一个测试验证未授权用户无法访问:

it('requires authentication to access users', function () {
    $this->get('/api/users')
         ->assertStatus(401);
});
登录后复制

然后在控制器中加入 $this->middleware('auth:sanctum');,直到测试通过为止。

基本上就这些。Laravel 配合 Pest 让 TDD 变得直观又愉快。测试不再是负担,而是开发的导航仪。

以上就是laravel如何使用Pest进行测试驱动开发_Laravel Pest测试驱动开发教程的详细内容,更多请关注php中文网其它相关文章!

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号