python 测试驱动开发的简单例子

简介: 一、需求分析需求:一个类 MyClass,有两个功能:add, sub1.先功能设计# myclass.pyclass MyClass(object): # 加法 def add(self): pass # 减法 def sub(self): pass 2.

一、需求分析

需求:一个类 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

好了,交货!

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

目录
相关文章
|
17天前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
38 0
|
3月前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
【7月更文挑战第31天】在数据驱动时代,Python凭借其简洁性与强大的库支持,成为数据分析与机器学习的首选语言。**数据分析基础**从Pandas和NumPy开始,Pandas简化了数据处理和清洗,NumPy支持高效的数学运算。例如,加载并清洗CSV数据、计算总销售额等。
51 2
|
3月前
|
数据挖掘 数据处理 决策智能
Python 数据分析工具箱:深挖 Pandas 与 NumPy 高级功能,驱动智能决策
【7月更文挑战第12天】Python的Pandas和NumPy是数据分析的基石。Pandas提供灵活的数据结构如DataFrame,用于高效处理关系型数据,而NumPy则以多维数组和科学计算功能著称。两者结合,支持数据合并(如`pd.merge`)、时间序列分析(`pd.to_datetime`)和高级数组运算。通过掌握它们的高级特性,能提升数据分析效率,应用于各领域,如金融风险评估、市场分析和医疗预测,助力数据驱动的决策。学习和熟练运用Pandas与NumPy是成为出色数据分析师的关键。
45 0
|
5月前
|
Web App开发 人工智能 Java
Python Selenium实现自动化测试及Chrome驱动使用
Python Selenium实现自动化测试及Chrome驱动使用
122 2
|
5月前
|
Web App开发 测试技术 Python
【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更新driver
【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更新driver
|
5月前
|
SQL Java 关系型数据库
在Python中编写Java数据库驱动是不可能的
在Python中编写Java数据库驱动是不可能的
|
5月前
|
自然语言处理 机器人 测试技术
常见python数据驱动框架
常见python数据驱动框架
|
5月前
|
Web App开发 Python Windows
Python Selenium 驱动下载与配置使用(详细流程)
Python Selenium 驱动下载与配置使用(详细流程)
505 0
|
12月前
|
Ubuntu Java 关系型数据库
Ubuntu下python安装mysqldb(驱动)
先跳转的该目录下,然后执行 sudo python setup.py install 然后就是各种问题,需要配置这个那个的。
122 0
|
12月前
|
SQL 关系型数据库 MySQL
软件开发入门教程网之Python MySQL - mysql-connector 驱动 2
软件开发入门教程网之Python MySQL - mysql-connector 驱动
46 0
下一篇
无影云桌面