2010-03-31 70 views
3

Django會話的行爲在「標準」視圖代碼和測試代碼之間發生變化,使得不清楚如何爲會話編寫測試代碼。谷歌搜索這產生了兩個有關此問題的相關討論:如何正確地單元測試Django會話?

  1. Easier manipulation of sessions by test client

  2. test.Client.session.save() raises error for anonymous users

我很困惑,因爲兩者的門票有處理這個問題的不同方式,他們都公認。我認爲這意味着他們被修補,行爲現在有所不同。我也不知道這些補丁所屬的版本。

如果我在Django 1.0中編寫單元測試,我將如何設置會話存儲以使會話像在瀏覽器中一樣工作?

+0

接受的票證並不意味着問題得到解決,它只意味着Django開發人員已經認識到票證描述了有效的問題或功能請求。只有當它被標記爲「固定」時,解決方案纔會被提交給源代碼樹。 – 2010-03-31 20:47:35

+0

哦,我不知道。我會重新閱讀這些文章。謝謝。 – thebossman 2010-04-01 03:06:17

回答

1

我不太明白你說「標準」視圖和「測試」代碼之間的行爲變化是什麼意思,也許你應該詳細說明。

但關於如何測試會議,我認爲有辦法。

  1. 你要明白如何會話Django的作品,讀了你在你的應用程序中使用會話包的單元測試。這是關於瞭解服務器端如何工作的。
  2. 你可能需要捕獲瀏覽器和服務器之間的幾句交談(例如使用螢火蟲)

這樣對你的問題看起來你不是路過的session_id當您登錄回服務器時獲得你與服務器交談。就像放在(POST,GET,COOKIES我不太記得那樣)。

這裏最重要的事情是瞭解會話如何在HTTP中工作,一旦你明白了,你一定清楚瞭解那裏發生了什麼,並相應地做出解釋。