2011-10-11 58 views
5

我對Django和單元測試都是新手,但是由於我在玩框架之後花費相當多的時間開始一個項目,所以我決定給單元測試一下。如何在Django中啓動TDD?

我的熱情放在一邊,對於如何規劃發展過程,我很失落。我在github上進行了一些Django項目的搜索,這些項目使用了單元測試,然後偶然發現了this。我看到只有「標記」應用程序的測試,它看起來不錯,但我不知道如何分解它。爲什麼apps/tagging/tests /中的「models.py」文件?模型類沒有任何與應用程序/標記/ models.py中的那些...

有關如何解決這個問題的任何想法或找到一個如何實現單元測試到django環境的好例子?

另外,我在文檔中讀到Django在1.3中引入了unittest2,所以「Django 1.1 Testing and Debugging - by Karen M. Tracey」是一個有用的讀物​​,或者您認爲它會引起一些混淆?

無論如何,我很欣賞任何提前輸入。

回答

5

如果我可能會插入我自己的教程,它將介紹如何從頭開始在Django中執行TDD。除了使用TDD的每一步之外,我都覆蓋了與「官方」Django教程相同的步驟。這包括使用Selenium進行全面的瀏覽器自動化測試(它允許您從最終用戶的角度測試行爲,包括稍後包括javascript的可能性)。我還展示瞭如何使用Django的TestClient的單元測試...

http://tdd-django-tutorial.com

+0

我想我在github sme之前偶然發現了這個項目(django民意調查應用+所有測試)。我不知道有一個一步一步的太...感謝隊友。這是一段時間,但我會看看它。 –

+0

看你怎麼樣!我試圖寫它,所以它不承認任何知識,並且真的一步一步...評論非常感謝! – hwjp

+0

我現在正在閱讀......甚至不知道功能測試可以自動化。我曾聽說過硒,但我從來沒有讀過模糊的東西。目前看起來很棒。我有一個問題,但是......你在單元測試期間多久提交一次代碼?我正在通過Poll模型創建位,......如果我要編寫測試,運行它,添加一個字段,提交,運行測試,添加另一個字段,提交它似乎有點過分了,運行測試等等......提交代碼更改的步驟是什麼? –

2

Django在幫助您入門方面做得很好。他們概述了什麼應該測試,什麼不應該測試,以及如何使用一些內置的測試類。 https://docs.djangoproject.com/en/dev/topics/testing/

另外我建議django-nose試跑。它有很多很棒的插件。

我認爲一般約定是在每個應用程序中都有一個tests.py文件。

我個人會爲我創建的每個函數寫至少1個測試。更多取決於複雜的邏輯。隨着應用程序的開發,這些測試將發展爲我的項目的迴歸測試。

+0

你有或知道任何好的示例項目,所以我可以檢查測試了不同的應用部分(表,視圖,網址,模型,會話等)?這將非常有幫助。另外,django-nose有什麼意義?你使用什麼樣的插件? –