1. 程式人生 > >實現待辦事項網站回顧

實現待辦事項網站回顧

self res tca sse post 用戶故事 ade live enter

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.test import TestCase
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 %}

實現待辦事項網站回顧