一、需求分析

需求:一个类 MyClass,有两个功能:add, sub

1.先功能设计

# myclass.py

class MyClass(object):

# 加法

def add(self):

pass

# 减法

def sub(self):

pass

2.再功能测试

import unittest

from myclass import MyClass

class mytest(unittest.TestCase):

# 初始化

def setUp(self):

self.mc = MyClass()

# 退出清理

def tearDown(self):

pass

# 测试加法

def test_add(self):

self.assertEqual(3, self.mc.add(1, 2))

# 测试减法

def test_sub(self):

self.assertEqual(1, self.mc.sub(2, 1))

if __name__ =='__main__':

unittest.main()

3.再功能实现

# myclass.py

class MyClass(object):

def __init__(self):

super().__init__()

def add(self, x, y):

return x + y

def sub(self, x, y):

return x-y

4.进行测试

$ python myclass_test.py

OK,现在可以向客户交货了。

老板发话,大家幸苦了,明天放假休息一天。

一切都很美好!

二、需求有变

等等,客户半夜给老板打电话,说有些东西要变一下。

说好的休一天假泡汤了

客户说,1+1=2没有问题,但如果是'1'+'1'='11'是不允许的

这尼玛什么变态的需求啊!好吧,客户是上帝

1.修改功能测试

import unittest

from myclass import MyClass

class mytest(unittest.TestCase):

# 初始化

def setUp(self):

self.mc = MyClass()

# 退出清理

def tearDown(self):

pass

# 测试加法

def test_add(self):

self.assertEqual(3, self.mc.add(1, 2))

self.assertRaises(ValueError, self.mc.add, '1', '2') # 两个数都不是数字,则需要报错

# 测试减法

def test_sub(self):

self.assertEqual(1, self.mc.sub(2, 1))

if __name__ =='__main__':

unittest.main()

2.修改功能实现

# myclass.py

class MyClass(object):

def __init__(self):

super().__init__()

def add(self, x, y):

#return x + y

number_types = (int, float, complex)

if isinstance(x, number_types) and isinstance(y, number_types):

return x + y

else:

raise ValueError

def sub(self, x, y):

return x-y

3.进行测试

$ python myclass_test.py

好了,交货!

求求您千万别再提什么别的变态的需求了。

python测试驱动开发pdf_python 测试驱动开发的简单例子相关推荐

  1. 在敏捷中应用测试驱动开发

    在敏捷和DevOps领域,企业越来越关注持续集成和持续部署问题.他们更频繁地更新软件,给软件测试造成额外的时间压力.而测试驱动开发可以成为解决这个问题的一剂良方. \\ 什么是测试驱动开发? \\ 测 ...

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

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

  3. 测试驱动开发_DevOps之浅谈测试驱动开发

    "测试驱动开发(Test-Driven Development, TDD),以测试作为开发过程的中心,它要求在编写任何产品代码之前,先编写用于定义产品代码行为的测试,而编写的产品代码又要以使 ...

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

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

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

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

  6. 简单的11步在Laravel中实现测试驱动开发

    测试驱动开发(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名. 下文是我在Mediu ...

  7. python测试驱动开发_使用Python进行测试驱动开发的简单介绍

    python测试驱动开发 by Dmitry Rastorguev 德米特里·拉斯托格夫(Dmitry Rastorguev) 使用Python进行测试驱动开发的简单介绍 (A simple intr ...

  8. C++ 测试驱动开发

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

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

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

最新文章

  1. 加载BeanFactory
  2. python成员变量和全局变量_python 全局变量和局部变量详解笔记
  3. 使用CUDA计算Haar小波变换
  4. unity 继承会调用start吗_【浅入浅出】Unity 雾效
  5. idea安装Maven Helper
  6. PHP CLI应用的调试原理
  7. 生态学研究方法(一)
  8. 连接CPU和计算机的总线,什么是计算机总线 总线和接口的区别
  9. oracle之基本的sql_select语句之课后练习
  10. 大一萌新看过来,C语言学到什么程度,才能“毕业不失业”!
  11. 智慧屏鸿蒙系统简介,首发鸿蒙系统,荣耀智慧屏是何方神圣?
  12. 台式计算机开关电源原理图,计算机开关电源基本结构及原理
  13. python语言的运行效率高吗_为什么python运行效率低?原来因为它!
  14. postgresql中DROP OWNED BY user_name对普通用户和只读用户的区别
  15. 网络中搜不到局域网内的其他计算机,局域网中搜不到其他计算机怎么修复
  16. excel如何一次批量选中工作表全部图片
  17. Oracle创建定时任务教程
  18. 人机大战,历史的见证
  19. 英国药品信息数据查询(网址)
  20. 【议程公布】2021年MongoDB中文社区南京技术沙龙

热门文章

  1. linux mint ubuntu 16.06,Ubuntu和Linux Mint:安装Pinta 1.6工具
  2. Greenplum的系统表
  3. RSRP、RSSI、RSRQ、SINR简单的解释
  4. APPNP:PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALIZED PAGERANK
  5. 怎么保证自动化脚本没有问题_质量保证将使设计变得自动化
  6. Intel IPP密码库 IPPCP 2018——第二部分 对称密码算法开发说明与示例代码
  7. 为什么开发与测试老掐架呢
  8. matlab箭头大小固定,科学网—Matlab 粗箭头绘制 - 肖鑫的博文
  9. im即时通讯开发如何理解定位技术
  10. 我只说一次,这样用领英开发国外客户,屡试不爽!