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中文网其他相关文章!