首页 > 后端开发 > php教程 > 简化的HTTP响应在Laravel测试中模拟了

简化的HTTP响应在Laravel测试中模拟了

Emily Anne Brown
发布: 2025-03-12 17:09:24
原创
494 人浏览过

Simplified HTTP Response Mocking in Laravel Tests

Laravel 提供简洁的HTTP 响应模拟语法,简化了HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。

基本实现提供了多种响应类型快捷方式:

 use Illuminate\Support\Facades\Http;

Http::fake([
    'google.com' => 'Hello World',
    'github.com' => ['foo' => 'bar'],
    'forge.laravel.com' => 204,
]);
登录后复制

此语法在全面的测试场景中运行良好:

 class ApiIntegrationTest extends TestCase
{
    public function test_service_communication()
    {
        Http::fake([
            // 字符串响应'api.notifications.com/*' => '消息已发送',

            // 数组响应(转换为JSON)
            'api.products.com/*' => [
                'products' => [
                    ['id' => 1, 'name' => '笔记本电脑'],
                    ['id' => 2, 'name' => '手机']
                ]
            ],

            // 状态码响应'api.status.com/check' => 200,
            'api.deprecated.com/*' => 410,

            // 相关端点的不同响应类型'api.orders.com/active' => ['status' => '处理中'],
            'api.orders.com/error' => 400,
            'api.orders.com/message' => '系统不可用'
        ]);

        // 使用断言进行测试$response = Http::get('api.notifications.com/send');
        $this->assertEquals('消息已发送', $response->body());

        $products = Http::get('api.products.com/list');
        $this->assertCount(2, $products['products']);

        $status = Http::get('api.status.com/check');
        $this->assertTrue($status->successful());
    }
}
登录后复制

这种简洁的语法通过减少阅读测试时的认知负担来显着提高测试的可维护性,使您可以专注于业务逻辑而不是HTTP 模拟细节。

以上是简化的HTTP响应在Laravel测试中模拟了的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板