3

Django セッションの動作は、「標準」のビュー コードとテスト コードの間で変化するため、セッションのテスト コードがどのように記述されているかが不明確になります。これをグーグルで検索すると、この問題に関する2つの関連する議論が得られます。

  1. テスト クライアントによるセッションのより簡単な操作

  2. test.Client.session.save() は、匿名ユーザーに対してエラーを発生させます

どちらのチケットもこの問題に対処する方法が異なり、どちらも受け入れられたため、混乱しています。これは、パッチが適用され、動作が異なることを意味すると思います。また、これらのパッチがどのバージョンに適用されるかもわかりません。

Django 1.0 で単体テストを作成している場合、セッションがブラウザーと同じように機能するようにセッション ストアを設定するにはどうすればよいでしょうか?

4

1 に答える 1

1

「標準」ビューと「テスト」コードの間で動作が変わると言っている意味がよくわかりません。詳しく説明する必要があるかもしれません。

しかし、セッションをテストする方法に関しては、アプローチがあると思います。

  1. django セッションがどのように機能するかを理解する必要があります。アプリケーションで使用したセッション パッケージの単体テストを読んでください。これは、サーバー側の仕組みを理解することに関するものです。
  2. おそらく、ブラウザとサーバー間のいくつかの会話をキャプチャする必要があります (たとえば FIREBUG を使用)

そのため、サーバーと通信するときにサーバーに再度ログインするときに取得する session_id を渡していないように見えます。それを入れるように(POST、GET、COOKIES私はそれをよく覚えていません)。

ここで重要なことは、セッションが HTTP でどのように機能するかを理解することです。それを理解すると、そこで何が起こっているかについて明確な考えがあり、それに応じて説明を行うことができます。

于 2012-07-02T09:54:51.683 に答える