パブリック API のみを使用した alexedwards/scs の簡単なテスト

PHPz
リリース: 2024-02-09 12:24:27
転載
1132 人が閲覧しました

仅使用公共 api 对 alexedwards/scs 进行简单测试

php Editor Banana この記事では、公開 API を使用して Alex Edwards/SCS の簡単なテストを行う方法を紹介します。 Alex Edwards/SCS は、アプリケーション内のユーザー セッションの管理を容易にするセッション管理用の PHP ライブラリです。パブリック API を使用してテストすることで、ライブラリの機能とパフォーマンスを検証し、実際のアプリケーションにおける安定性と信頼性を確保できます。この記事では、簡単なテストを実施し、テスト結果の分析と解釈を示す方法を段階的に説明します。はじめましょう!

質問内容

この質問はこの質問のフォローアップ質問です。 https://pkg.go.dev/github.com/alexedwards/scs/[email protected] で簡単なテストを実行して、使用したい機能を確認したいと考えています。基本的に、セッションにデータを入力し、それを取り出して、それが同じであることを確認したいだけです。このようなもの: ### リーリー

これにより、パニックが発生します: scs: コンテキスト内にセッション データがありません。

httptest パッケージからサンプルをコピーしようとしましたが、httptest.server は http.handler を実装していません (servehttp メソッドが欠落しています)。

リーリー

alexedwards/scs リポジトリ内のテストも確認しましたが、プライベート関数 addessiondatatocontext が使用されています。

Go でセッションをテストする最善かつ簡単な方法は何ですか?

解決策

コード内に

があるようです リーリー

テスト サーバー (

ts) を sessionmanager.loadandsave に渡そうとしています。 sessionmanager.loadandsave には http.handler が必要であり、ts のタイプは *httptest.server であるのに対し、## ではないため、これは機能しません。 #http.ハンドラー 代わりに、実際のハンドラーを

sessionmanager に渡す必要があります。テストサーバーを作成する前に、 をロードして保存します。 これを行うには、

httptest.newserver ## に渡す前に、実際のハンドラー関数 (

http.handler を返す) を sessionmanager.loadandsave でラップします。 #。 リーリー 実際のハンドラー関数を sessionmanager.loadandsave

ミドルウェアでラップして、新しいハンドラーを作成します。このラップされたハンドラーは、

httptest.newserver に渡されます。 これらをまとめると: リーリー

以上がパブリック API のみを使用した alexedwards/scs の簡単なテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!