python测试断言,, 这几天看了一下p
python测试断言,, 这几天看了一下p
这几天看了一下python的测试,基于函数方法和基于类的测试,主要使用的模块是unittest模块,为特定的方法和类,建立测试模块,测试函数功能是否满足预期。下面是模仿书里面的一个例子。
City.py模块
def city(city_name,country_name): full_city_name = city_name +‘,‘+country_name return full_city_name
为这个模块创建一个测试模块,主要是为了测试这个city方法是否能够满足预期。
assert模块
import unittestfrom City import cityclass Testcity(unittest.TestCase): def test_city(self): city_name = ‘Santiago‘ country_name = ‘Chile‘ full_city_name = city(city_name,country_name) print(full_city_name) self.assertEqual(full_city_name,‘Santiago,Chile‘) # self.assertEqual(4+5,9)if __name__ == ‘__main__‘: unittest.main()
主要就是导入unittest模块,然后定义一个测试类,继承unittest.TestCase,在测试类中定义测试方法,针对于被测试方法,编写测试用例,然后assert断言,查看输入,如果在运行过程中出现报错,则证明模块功能有问题,需要修改功能。如果测试没有问题,则证明测试能够通过,功能模块没有问题。
这就是测试成功的结果,如果测试部成果,如下图所示。
会抛出一个异常,在断言的地方。然后可以根据这个异常,来进行排错。
一般编写的代码,都需要经过测试之后,才能正常使用。避免复杂的人工测试,assert断言能够做到自动化,一旦有报错,则直接能判断功能是否正常。
下面是一个对类的测试断言,写在同一个模块中,只是为了说明测试方法。
class Employee(): def __init__(self,first_name,last_name,salary): self.first_name = first_name self.last_name = last_name self.salary = int(salary) def give_raise(self,raise_default = 5000): self.salary += raise_defaultclass TestClassEmployee(unittest.TestCase): def setUp(self): self.username = Employee(‘John‘,‘Smith‘,‘60000‘) def test_give_default_raise(self): self.username.give_raise() new_raise = 65000 self.assertEqual(new_raise,self.username.salary) def test_give_custom_raise(self): self.username.give_raise(7000) new_raise = 67000 self.assertEqual(new_raise, self.username.salary)
if __name__ == ‘__main__‘: unittest.main()
定义了一个员工类,需要知道员工的名字和薪水,同时定义了一个涨工资方法,默认值是5000,在定义测试类的时候,首先定义了个测试对象,通过setUp方法,生产测试对象,后续的测试方法中,可以通过该测试对象来做测试。定义了两个测试方法,默认值和自定义值。测试结果如下:
python测试断言
相关内容
- python学习(5),,python(5)5
- python(paramiko模块的简单使用),,#通过paramik
- win10环境下python3安装sqlserver方法,,win10环境下py
- 5个实用的例子,一行Python能干嘛?就靠这招教新来的学
- 量化分析预测股市?试试这个 Python 库,
- 什么是python对象,,python使用对象
- 用 Python 将 matplotlib 图表集成到 PDF 中,
- 从Python角度了解以太坊,
- Python回顾与整理6:条件和循环,,0.说明提及的内容为
- 和我一起学python,初识python (life is short ,we need python)
评论关闭