pythontdd测试命名_从Python开始真正见识TDD--初始山羊

TDD这一词很早就听过,Test Driven Development,之前更多的认知是停留在概念上的,很少实践、盲目实践,而且认为这就是一套方法论而已。由于之前项目时间紧张,再加上个人编程习惯的传统,TDD多次的擦身而过,最后停留在可望而不可及的层面了。

image.png

最近开始深入了解Python知识,买了一本《Python Web开发测试驱动方法》的书,由Harry J.W. Percival著,起初知识想着了解一下Python的测试知识有什么不同,没想到有幸真正认识了“测试山羊”,读了前言和前三章后终于茅塞顿开,TDD不只是一个理念,更是一个非常可操作的方法,并且从心理学上讲也能极大减少开发压力,从而写出让人赏心悦目的代码。废话不多说了,首先说点准备工作。

一、准备工作

Python环境,>3.3

HTML基础知识

JavaScript基础知识

Firefox或其他浏览器,建议Firefox

Git,一定要有版本管理

Selenium,最新版本

Django

小Tips:除非你确切的知道要做什么,否则不要使用virtualenv。

你需要一个脾气不好、不可理喻的师傅来强制你进行TDD,我们的师傅就是“测试山羊”,一次只迈一步。

二、TDD步骤:

TDD不是天生就会的技能,需要像武术一样反复练习,一旦掌握熟练后,它的驱动真的很快很快。

编写测试。第一步始终一样

编写应用代码。只有测试失败了才能进行第二步

Git提交。每次改动都要进行提交,并写提交消息

编写测试首先编写一个用户故事

精简注释。只要努力做到代码可读,使用有意义的变量名和函数名,保持代码结构清晰,就不需要通过注释说明代码做了什么,只是偶尔写点注释说明为什么这么做。否则就会形成注释谎言。

预期失败。对于意料之中的失败其实是好消息,只需等待失败的出现,并在出现有编写应用代码。

重来一遍,换个说法(原书):

先写功能测试,从用户角度描述应用的新功能

功能测试失败后,想办法写代码让它通过(或者说至少让当前失败的测试通过)。此时使用一个或多个单元测试定义希望代码实现的效果,保证为应用中的每一行代码(至少)编写一个单元测试。

单元测试失败后,编写最少量的应用代码,刚好让单元测试通过。有时要在第2步和第3步之间多次往复,直到我们觉得功能测试有一点进展为止。

再次运行功能测试,看能否通过,或者有没有进展。这一步可以促使我们编写一些新的单元测试和代码等。

三、相关知识点:

功能测试脚本

名称:functional_tests.py

执行:$ python functional_tests.py

创建Django项目

$ django-admin.py startproject firstDemo

启动Django项目

$ python manage.py runserver

创建Django应用

$ python manage.py startapp lists

运行Django单元测试

$ python manage.py test

TDD同时使用功能测试和单元测试

功能测试:站在用户的角度从外部测试应用。高层驱动。

单元测试:站在程序员的角度从内部测试应用。低层驱动。

“单元测试/编写代码”循环

(1)在终端里运行单元测试

(2)在编辑器中改动最少量的代码

(3)重复上两步

四、阅读报错报告

一定要花时间学习如何快速阅读错误报告,找出解决问题的线索。

首先查看错误本身。很多时候你只需查看这一处就能找出问题所在,不过有些时候原因就不那么明显。

接下来要确认哪个测试失败了。反问:是刚才写的预期失败的那个测试吗?

然后查看导致失败的测试代码。要从测试报告顶部往下看,找出错误发生在哪个测试文件中的哪个测试函数中的哪一行代码。

通常还有第四步,继续往下看,查找问题牵涉的应用代码。

五、用户故事参考

image.png

image.png

先到这里,后面章节阅读后、实践后再续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值