实现待办事项网站回顾

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 %}

posted @ 2018-04-05 06:40  AhMay  阅读(291)  评论(0编辑  收藏  举报