golang で net/http/httptest.NewUnstartedServer 関数を使用して起動されていない HTTP サーバーを作成する方法
概要:
Golang では net / を使用できます。 http サーバーを構築して処理するための http パッケージ。単体テストを行う場合、テストでのサーバーの動作をシミュレートするために、起動していない HTTP サーバーを作成する必要がある場合があります。この場合、net/http/httptest パッケージの NewUnstartedServer 関数を使用して、起動されていない HTTP サーバーを作成できます。
NewUnstartedServer 関数は、渡されたパラメーターに基づいて未起動の HTTP サーバーを作成する net/http/httptest パッケージ内の関数です。この関数を呼び出すと、起動されていないサーバーを表す *httptest.Server インスタンスが返されます。このインスタンスをテストで使用して、さまざまなサーバーの動作をシミュレートできます。
以下は、NewUnstartedServer 関数を使用して起動されていない HTTP サーバーを作成する方法を示す具体的なコード例です。
コード例:
package main import ( "fmt" "net/http" "net/http/httptest" "testing" ) func main() { // 创建一个未启动的HTTP服务器 server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, World!") })) // 启动HTTP服务器 server.Start() // 发送HTTP请求到服务器 resp, err := http.Get(server.URL) if err != nil { fmt.Println("发送请求失败", err) return } defer resp.Body.Close() // 输出响应内容 body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("读取响应失败", err) return } fmt.Println("响应:", string(body)) // 停止HTTP服务器 server.Close() }
上の例では、まず httptest.NewUnstartedServer 関数を使用して、起動されていない HTTP サーバーを作成しました。サーバーのハンドラー関数は、要求元のクライアントに単に「Hello, World!」を返す匿名関数です。
次に、server.Start() メソッドを呼び出して HTTP サーバーを起動します。サーバーが起動したら、http.Get 関数を使用してサーバーの URL への GET リクエストを開始し、サーバーから返される応答を取得します。
最後に、応答内容を出力し、server.Close() を呼び出して HTTP サーバーを閉じます。
起動されていない HTTP サーバーは、リクエストを送信したクライアントへの応答をシミュレートするだけであり、実際に外部からのリクエストを監視および処理するわけではないことに注意してください。したがって、テストで起動していない HTTP サーバーを使用する場合、実サーバーとの競合や影響について心配する必要はありません。
概要:
Golang では、net/http/httptest.NewUnstartedServer 関数を使用すると、テスト時にサーバーの動作をシミュレートするための未起動の HTTP サーバーを簡単に作成できます。この関数によって作成されたサーバーは、server.Start() メソッドを通じて起動でき、http.Get などの関数を使用して、リクエストを送信するクライアントをシミュレートします。使用後は、server.Close() メソッドを呼び出してサーバーをシャットダウンできます。この方法を使用すると、HTTP サーバーの単体テストを簡単に行うことができます。
以上がgolang で net/http/httptest.NewUnstartedServer 関数を使用して未起動の HTTP サーバーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。