现在的功能测试还是失败的,继续修改代码,让其通过。因为HTML现在保存在模板中,可以尽情修改,无需编写额外的单元测试。我们需要一个<h1>元素

修改:lists/templates/home.html

<html>
<head>
<title>To-Do lists</title>
</head>>
<body>
<h1>Your To-Do list</h1>
</body>>
</html>

功能测试(前提需要先运行服务器 # python manage.py runserver)

报错:element: [id="id_new_item]

继续修改

<html>
<head>
<title>To-Do lists</title>
<input id="id_new_item" />
</head>>
<body>
<h1>Your To-Do list</h1>
</body>>
</html>

And now?

AssertionError: '' != 'Enter a to-do item'

加上占位文字

        <input id="id_new_item" placeholder="Enter a to-do item"/>

运行得到下面错误

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="id_list_table"]

因此要在页面中加入表格,目前表格是空的

        <input id="id_new_item" placeholder="Enter a to-do item"/>
<table id="id_list_table"></table>
</body>

现在的功能测试如何:

    any(row.text == '1: Buy peacock feathers' for row in rows)  #
AssertionError: False is not true

原来是assertTrue,因为没有给他提出明确的失败消息,可以把自定义的错误消息传给unittest中的大多数assertx方法

        self.assertTrue(
any(row.text == '1: Buy peacock feathers' for row in rows), #
"New to-do item did not appear in table"
)

再次运行功能测试,应该会看到我们编写的消息:

AssertionError: False is not true : New to-do item did not appear in table

现在想让测试通过,就要真正处理用户提交的表单,后续在讨论

这里提交一下

git diff
git commit -am "Front page HTML now generated from a template--现在从模板生成的首页html"

小结:TDD流程

前面我们见识了测试驱动开发流程中涉及的所有主要概念

  1. 功能测试
  2. 单元测试
  3. “单元测试/编写代码”循环
  4. 重构

流程图,能清楚地表明流程中的循环

如果既有单元测试又有功能测试,TDD流程如下

功能测试是应用是否正常运行的最终评判,单元测试只是整个开发过程中的一个辅助工具。

Django学习系列9:接着修改首页的更多相关文章

  1. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  2. Django学习系列6:使用selenium测试用户交互

    学习系列5中的单元测试有报错信息,这儿来编写functional_tests.py文件,扩充其中的功能测试 # File: functional_test.py # Author: Rxf # Cre ...

  3. [python][django学习篇][10]再次修改博客首页模板

    目前我们看到的只是模板中预先填充的一些数据,我们得让它显示从数据库中获取的文章数据.下面来稍微改造一下模板: 删除所有article标签,然后添加以下内容,将从数据库读取到的内容填充到模板变量{{ p ...

  4. django学习系列——python和php对比

    python 和 php 我都是使用过,这里不想做一个非常理性的分析,只是根据自己的经验谈一下感想. 在web开发方面,无疑 php 更甚一筹. 从某种角度来说,php 就是专门为 web 定制的语言 ...

  5. Django学习系列之Python+Xadmin

    项目树 引入xadmin pycharm在项目中创建存放xadmin的目录 右键项目名称-->pythonpackage-->输入名称:extra_app 拷贝xadmin代码到extra ...

  6. Django学习系列17:在模板中渲染待办事项

    前面提到的问题中在表格中显示多个待办事项 是最后一个容易解决的问题.要编写一个新单元测试,检查模板是否也能显示多个待办事项: lists/tests.py def test_displays_all_ ...

  7. Django学习系列16:处理完POST请求后重定向

    处理完POST请求后重定向 代码中new_item_text = ''的写法不怎么样.解决第二个问题时候,顺带把这个问题也解决了. 人们都说处理完post请求后一定要重定向,接下来就实现这个功能吧.修 ...

  8. Django学习系列15:把POST请求中的数据存入数据库

    要修改针对首页中的POST请求的测试.希望视图把新添加的待办事项存入数据库,而不是直接传给响应. 为了测试这个操作,要在现有的测试方法test_can_save_a_post_request中添加3行 ...

  9. Django学习系列11:在服务器中处理POST请求

    之前的代码还没有为表单指定action=属性,因此提交表单默认返回之前渲染的页面,即“/”,这个由视图函数home_page处理.下面修改这个视图函数,让它能处理POST请求. 这意味着要为视图函数h ...

随机推荐

  1. 7NiuYun云存储UploadPicture

    1.七牛云云存储图片,上传.下载.源代码地址:ssh (git@gitee.com:516877626/QiNiuYunUploadpicture.git) .https(https://gitee. ...

  2. java:svn

    1.配置: 在windows系统中,操作svn的工具最长用的是小乌龟svn 服务器端(项目所在的服务器上):在java开发中几乎所有的服务器为Linux系统 需要在Linux系统中进行安装 1.修改h ...

  3. git 提交项目到远程仓库,简单实现忽略 node_modules文件

    在项目根目录中创建 .gitignore文件 在文件中添加你要忽略的文件 .DS_Store node_modules /dist # local env files .env.local .env. ...

  4. 【神经网络与深度学习】GLOG介绍

    一.安装配置 1.简介 google 出的一个C++轻量级日志库,支持以下功能: ◆ 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为: ◆ 严重性分级,根据日志严重性分级记录日志: ◆ 可 ...

  5. 【VS开发】设备控制台 (DevCon.exe) 示例

    设备控制台 (DevCon.exe) 示例 本部分提供以下设备控制台 (DevCon.exe) 命令的示例: DevCon HwIDs 示例 1:查找所有硬件 ID 示例 2:使用模式查找硬件 ID ...

  6. logstash 处理信息规律研究

    1.input file path => "/opt/50910627.log" path => "/path/to/%{+yyyy/MM/dd/hh}.lo ...

  7. 利用docker搭建本地私有镜像仓库

    主机名 角色 sht-sgmhadoopcm-01 Docker Repository sht-sgmhadoopnn-01 Docker Client 1. 在两台节点分别安装docker http ...

  8. Linux下面查看网卡的信息

    查看linux下面网卡的速度信息 Study From 百度知道 (懒得翻墙) 1. centos机器 安装的比较全(个人比较懒 没有使用core最小化安装, 避免出问题麻烦 公司网络太垃圾) 使用 ...

  9. Kick Start 2019 Round A Contention

    $\DeclareMathOperator*{\argmax}{arg\,max}$ 题目链接 题目大意 一排 $N$ 个座位,从左到右编号 $1$ 到 $N$ . 有 $Q$ 个预定座位的请求,第 ...

  10. 厉害了,ES 如何做到几十亿数据检索 3 秒返回!

    一.前言 数据平台已迭代三个版本,从头开始遇到很多常见的难题,终于有片段时间整理一些已完善的文档,在此分享以供所需朋友的 实现参考,少走些弯路,在此篇幅中偏重于ES的优化,关于HBase,Hadoop ...