博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 测试驱动开发的简单例子
阅读量:6478 次
发布时间:2019-06-23

本文共 1993 字,大约阅读时间需要 6 分钟。

一、需求分析

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

1.先功能设计

# myclass.pyclass MyClass(object):    # 加法    def add(self):         pass            # 减法    def sub(self):         pass

2.再功能测试

import unittestfrom myclass import MyClassclass 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.pyclass 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 unittestfrom myclass import MyClassclass 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.pyclass 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

好了,交货!

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

本文转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/5858619.html
,如需转载请自行联系原作者
你可能感兴趣的文章
eclipse打开当前文件所在文件夹
查看>>
去哪儿搜索引擎QSearch设计与实现
查看>>
POJ 2255 Tree Recovery (二叉树)
查看>>
HDU 1026 Ignatius and the Princess I
查看>>
There are two ways for Datatable download as excel
查看>>
TextBox客户端JS赋值 后台获取(转载)
查看>>
Yii2的深入学习--行为Behavior
查看>>
SQL Server 之 事务与隔离级别实例讲解
查看>>
PCA误差
查看>>
烦人的数据不一致问题到底怎么解决?——通过“共识”达成数据一致性
查看>>
WPFの获取任意元素的位置
查看>>
WPF的TextBox产生内存泄露的情况
查看>>
RAMPS1.4 3d打印控制板接线与测试1
查看>>
PS 多次剪裁同一图片
查看>>
MusicXML 3.0 (2) - 调号
查看>>
黑科技揭秘:眼科大夫如何应用5G+8K完成远程会诊?
查看>>
从零搭建webpack前端类库脚手架[3]-强悍的babel
查看>>
[LeetCode/LintCode] Is Subsequence
查看>>
javascript cookie的传统用法,用cookie做一个记住用户名的小功能
查看>>
面试官!让我们聊聊正则
查看>>