實現待辦事項網站回顧
1. 測試驅動開發
想要做什麽,寫成一個一個的用戶故事。故事的內容 盡量是語言能夠表達的用戶操作的每一步.
比如: 打開網頁,輸入網址,看到什麽元素,元素中有什麽內容。要給該元素輸入什麽,Enter之後期望得到什麽。關閉網頁等。
功能測試,可以用 Django提供的 LiveServerTestCase,這樣就省去了每次測試完後需要清數據庫的麻煩。
2. 單元測試驅動功能開發
功能測試完成後,進行的每一步開發,都要有單元測試的跟蹤。單元測試是從程序員的角度考慮問題的。所以單元測試測試的著重點是 每個頁面的視圖函數的後臺功能測試。比如能解析首頁url了。首頁的輸入應該在數據庫中創建什麽了。數據之間的關系了。等等。
單元測試中,主要用到了很多Django API操作。數據庫操作。建議使用的是 Django提供的 (from django.test import )TestCase.已經測試客戶端. self.client. get,self.client.post 可以模仿瀏覽器發請求。得到的response是render之前的response上下文。template中的變量都在其中。
3. url 整理。
建議每個應用都有自己的url。然後在project的url文件中進行include。便於管理
4. get 到的新技能和api
from django.core.urlresolvers import resolve
from django.http import HttpRequest
from django.template.loader import render_to_string
found = resolve("/") # 返回的是視圖函數
self.assertEqual(found.func,home_page)
render_to_string(‘home_page.html‘,request=request) #將一個template render成 string
測試客戶端返回的response 可以
self.assertRedirects(response,‘/Lists/%d/‘ %(correct_list.id,))
template for
{% for new_item_text in list.item_set.all %}
<tr><td>{{ forloop.counter}}: {{new_item_text.text}}</td></tr>
{% endfor %}
實現待辦事項網站回顧