HTTPの相互作用をテストするためのGoパッケージです.関連キーワード:COM
以前私はカバー
あなたに紹介しましょう
DNAEON/GO VCRの使用
このパッケージの動作方法は
このファイルを保存するという考えは、将来同じテストを実行するとき、同じ結果を得る決定論的方法を持つことです.
秘密の削除
実際に証明書を使用している場合、HTTPヘッダーやクエリ引数として使用できます.
リクエストのクエリ引数を削除し、
Matcherを更新してその値を考慮しない. これを行うことで、決定的にテストを実行できます.
最後の思考
とどのつまり
github.com/h2non/gock
, そのパッケージはHTTPリクエストをテストするために使用され、手動で両方の要求と応答を模擬することによって動作する方法です.今回は別のアプローチを取っています.代わりに、将来のテストでそれらを再生するための備品としてリクエストとレスポンスの両方を保存しています.Please refer to the full example code for more details.
あなたに紹介しましょう
github.com/dnaeon/go-vcr
.DNAEON/GO VCRの使用
このパッケージの動作方法は
http.RoundTripper
に割り当てられるTransport
使用中のフィールドhttp.Client
, for example :// recorder is "github.com/dnaeon/go-vcr/recorder"
r, err := recorder.New(path.Join("fixtures", "weather_401"))
if err != nil {
t.Fatalf("failed creating recorder %s", err)
}
return &http.Client{Transport: r}, r.Stop
このコードが初めて実行されると、新しいファイルを作成しますfixtures/weather_401.yaml
, それが存在しないならば、質問に関連するすべての情報を保存してください.このファイルを保存するという考えは、将来同じテストを実行するとき、同じ結果を得る決定論的方法を持つことです.
dnaeon/go-vcr
舞台裏では、そのファイルを適切にリクエストと一致させて、以前に保存されたレスポンスを返します.秘密の削除
実際に証明書を使用している場合、HTTPヘッダーやクエリ引数として使用できます.
dnaeon/go-vcr
それらをリークしないようにそれらを削除することができます.for example :r, err := recorder.New(path.Join("fixtures", "weather_200"))
if err != nil {
t.Fatalf("failed creating recorder %s", err)
}
cleanURL := func(u *url.URL) *url.URL {
q := u.Query()
q.Del("appid")
u.RawQuery = q.Encode()
return u
}
r.AddFilter(func(i *cassette.Interaction) error {
u, err := url.Parse(i.Request.URL)
if err != nil {
return err
}
i.URL = cleanURL(u).String()
return nil
})
r.SetMatcher(func(r *http.Request, i cassette.Request) bool {
r.URL = cleanURL(r.URL)
return cassette.DefaultMatcher(r, i)
})
return &http.Client{Transport: r}, r.Stop
上記の場合、両方ともです.最後の思考
dnaeon/go-vcr
and h2non/gock
お互いを補いなさい.go-vcr
サードパーティAPIで動作するときには、いくつかのフィールドを使用している場合に便利ですが、将来の私たちは、すでに既知のフィールドを使用してサポートを追加したり、サードパーティ製API上で利用可能なオプションについての意思決定を追加するようなものを決定するために保存されたフィクスチャを参照することができます.とどのつまり
dnaeon/go-vcr
は、非常に推奨する必要があります.Reference
この問題について(HTTPの相互作用をテストするためのGoパッケージです.関連キーワード:COM), 我々は、より多くの情報をここで見つけました https://dev.to/mariocarrion/go-package-for-testing-http-interactions-github-com-dnaeon-go-vcr-hleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol