亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何測試發出http請求的方法?

如何測試發出http請求的方法?

PHP
慕雪6442864 2023-09-15 17:07:35
我正在 Laravel 中編寫測試。但是,我遇到了麻煩,因為我不知道如何測試。有一種方法可以發出 http 請求,如下所示。您通常會如何測試此方法?我應該使用實際可訪問的 URL 或模擬嗎?PHP 7.4.6 Laravel 7.0<?phpnamespace App\Model;use Illuminate\Support\Facades\Http;use Exception;class Hoge{    public function getText(string $url, ?string $user, ?string $password, string $ua): bool    {        $header = ["User-Agent" => $ua];        $httpObject = $user && $password ? Http::withBasicAuth($user, $password)->withHeaders($header) : Http::withHeaders($header);        try {            $response = $httpObject->get($url);            if ($response->ok()) {                return $response->body();            }        } catch (Exception $e) {            return false;        }        return false;    }}
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

擴展到其他系統的功能可能會很慢并且使測試變得脆弱。盡管如此,您還是希望確保您的getText方法按預期工作。我會做以下事情:

  • 專門為您的方法創建一組集成測試getText。這些測試向服務器發出實際的 http 請求以驗證預期的行為。Web 服務器不必是外部系統。您可以使用 php 的內置網絡服務器來提供測試 url。

  • 對于使用該getText方法的所有其他功能,我會模擬該方法以保持測試快速。


查看完整回答
反對 回復 2023-09-15
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

要創建新的測試用例,您可以使用make:testArtisan 命令:


php artisan make:test HogeTest

然后你可以創建你的 HogeTest,考慮到你的標題是正確的


<?php


namespace Tests\Feature;


use Tests\TestCase;


class HogeTest extends TestCase

{??

? ? public function hogeExample()

? ? {

? ? ? ? $header = ["User-Agent" => $ua];

? ? ? ? $response = $this->withHeaders([

? ? ? ? ? ? $header,

? ? ? ? ])->json('POST', $url, ['username' => $user, 'password' => $password]);


? ? ? ? $response->assertStatus(200);

? ? ? // you can even dump response

? ? ? $response->dump();

? ? }

}

這是一個簡單的示例,您可以根據需要對其進行修改。


查看完整回答
反對 回復 2023-09-15
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

我更喜歡使用 Postman 進行 Web 服務器/API 測試。


查看完整回答
反對 回復 2023-09-15
  • 3 回答
  • 0 關注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號