书籍目录:
1.我不测试

  1. 测试驱动开发原理
  2. 哪一类测试

2.我测试

  1. Unittest的缺陷
  2. Unittest的替代品
  3. 仿真和模拟
  4. 文档驱动开发

主要内容:

测试驱动开发原理:TDD由编写覆盖所需要功能的测试用例,之后编写该功能两部分工作组成。换句话说,将在代码存在前编写测试用例。

哪一类测试:最主要的是验收测试(或功能测试)和单元测试。

Unittest的缺陷:

  1. 该框架笨重,因为:1.必须在TestCase子类中编写所有的测试;2.必须在方法名称前加test;3.被要求使用TestCase提供的断言方法;4.必须为所要的运行测试活动建立测试套件。
  2. 框架难以扩展
  3. 测试装置有时难组织,因为setUp和tearDown机制绑定在TestCase上,但是它们在每测试时运行一次。
  4. 在Python软件之上不容易运行测试活动,必须编写额外的脚本来收集测试,聚集并运行它。

Unittest的替代品:

  1. nose
  2. py.test

文档驱动开发:

  1. 编写一个故事

书本中的内容过于理论化,以下是个人心得:

  1. 本章节介绍了TDD(测试驱动开发)原理及必要性
  2. 单元测试框架:unittest 、nose 、py.test

unittest本人一直用来做自动化框架,nose和py.test先前了解了但没怎么用。nose示例如下:

good.py

# -*- coding:utf-8 -*-
import hashlib
import time
import requestsfrom Crypto.Cipher import AES
from Crypto import Random
from binascii import a2b_hex# AES加密
def get_sign_nature(timestamp):BS = 16pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)key_str = "D8EF40495D6C6CD171BFA4403516B035"plain = timestampiv = Random.new().read(AES.block_size)obj = AES.new(a2b_hex(key_str),AES.MODE_ECB,iv)plain = pad(plain)result = obj.encrypt(plain).encode("hex").upper()return resultdef login(mobile, password):head = "http://app55test.mncats365.com:9080/"body = "user/app/login.do"tim = str(time.time()).split(".")[0] + "000"must_parameters = "&isApple=0&ver_name=5.5.0" + "&timestamp=" + tim + "&signnature=" + get_sign_nature(tim)payload = "&userPassword=" + hashlib.md5(password).hexdigest()[8:24] + \"&token=f7f3d60393d49ff8&regid=020759f564f&userAccount="+ mobileurl = head + body + "?" + payload + "&" + must_parametersheaders = {'content-type': 'application/json'}try:r = requests.post(url, headers=headers)result = r.json()except:result = {"status": url}return resultif __name__ == '__main__':print login("13133841111", "123456")

test_good.py

# -*- coding:utf-8 -*-
import nose
from good import logindef test_login():assert login("13133841111", "123456").get("status") == 1if __name__ == '__main__':nose.runmodule()

执行结果:

C:\Python27\python.exe C:/Users/009/PycharmProjects/Auto/Python/Python高级编程/chapter_11/test_good.py
.
----------------------------------------------------------------------
Ran 1 test in 0.238sOKProcess finished with exit code 0

参考文献:
Python单元测试框架之pytest—如何执行测试用例

本人利用Bootstrap + EasyUI + Django开发网站:http://www.xuyangting.com/ 欢迎来访

阳台测试: 239547991(群号)

本人博客:http://xuyangting.sinaapp.com/

Python 高级编程笔记之测试驱动开发相关推荐

  1. Python 高级编程笔记之类别

    目录: 子类化内建类型 访问超类中的方法-super 描述符 & 属性 元编程 主要内容: 1.子类化内建类型 # -*- coding:utf-8 -*-class Folder(list) ...

  2. python数据符号函数等一切皆对象_第一章:Python高级编程-Python一切皆对象

    第一章:Python高级编程-Python一切皆对象 Python3高级核心技术97讲 笔记 1. Python一切皆对象 1.1 函数和类也是对象,属于Python的一等公民 "" ...

  3. 被高估了的测试驱动开发?

    测试驱动开发(TDD)始于上世纪 90 年代,时至今时今日,依然只有少数的开发者在践行着.本文作者从软件开发者的角度,又一次帮助我们定义了测试驱动开发,解答了众多开发着对 TDD 常见的谬误. 作者 ...

  4. C++ 测试驱动开发

    看到一篇非常好的C++测试驱动开发文章,这里转载下. 测试驱动开发(TDD)背景及综述 测试驱动开发是 Kent 提出的一种新的软件开发流程,现在已广为人知,这种开发方法依赖于极短重复的开发周期,面对 ...

  5. 面向 C++ 的测试驱动开发

    测试驱动开发(TDD)背景及综述 测试驱动开发是 Kent 提出的一种新的软件开发流程,现在已广为人知,这种开发方法依赖于极短重复的开发周期,面对开发需求,开发人员要先开发代码测试用例,这些代码实现的 ...

  6. NDK 高级编程(笔记)

    Android 开发中针对 NDK 的书籍很少,<Pro Android C++ with the NDK>也是出版的比较早的一本书,有些内容可能对现在的开发并不适用.但是书中介绍的内容比 ...

  7. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  8. 测试驱动开发 测试前移_测试驱动开发:它是什么,什么不是。

    测试驱动开发 测试前移 by Andrea Koutifaris 由Andrea Koutifaris Test driven development has become popular over ...

  9. 如何使用 Django 进行测试驱动开发,我来告诉你

    所谓测试驱动开发(TDD),就是先编写测试用例,然后编写代码来满足测试用例,具体包含以下步骤: 编写测试用例. 编写代码满足测试用例中的需求. 运行测试用例. 如果通过,说明代码满足了测试用例所定义的 ...

  10. python高级编程(3) - 深入类和多态

    深入类和多态 一,鸭子类型和多态 鸭子类型 当你看到一只鸟走起来想鸭子,游泳起来像鸭子,叫起来像鸭子,那么这只鸟就叫做鸭子类型 我们并不关心对象是什么类型,到底是不是鸭子,只关心行为. 我们只关心一个 ...

最新文章

  1. 目标检测新范式:Sparse R-CNN
  2. python字符串操作_浅谈Python 字符串特有的操作方法
  3. python和docker交互_jupyter notebook 连接服务器docker中python环境
  4. 模拟计算机 电磁,校园机房电磁模拟环境及计算机模拟.ppt
  5. php swoole 内存,swoole 占用内存到10M 报错
  6. java der pem_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
  7. python获取当前线程_Python爬虫(线程,进程)
  8. SQL2008-显示表大小行数
  9. 配置 SQL Server 2005 以允许远程连接(服务器端)
  10. Centos7 只启用iptables 禁用firewalld功能.
  11. TestComplete自动化测试视频教程
  12. java8新特性 lambda Stream map(函数式编程)
  13. 微信推送封面尺寸_一篇公众号推文如何设置两张封面图?
  14. 取文件操作fopen(file open)
  15. Android 开机速度优化-----ART 预先优化
  16. EVE-NG模拟器教程(三)——Lab平台初探
  17. landsat7数据预处理
  18. EXCEL基础操作:隐藏,冻结,查找(搜索),锁定,保护
  19. 查看设备序列号和设备标识的方式(有三种方法)
  20. 【机器学习系列】之机器学习基础

热门文章

  1. 黑客攻防实战入门读书笔记
  2. matlab函数总结
  3. 【51单片机快速入门指南】6.2:SPI 、八线、四线控制 LCD12864 屏幕及Proteus的仿真(支持中文汉字)
  4. 解决“gettools.exe 已停止工作”问题
  5. 软件工程导论课堂作业
  6. Linux下TCP Socket编程实例
  7. 【weblogic部署应用】
  8. vue路由 Maximum call stack size exceeded
  9. java 钩子程序,在kill 的时候程序平滑退出
  10. Linux下使用QQ