一、unittest单元测试框架
1.认识单元测试
1.断言方法
#计算器类 #coding:utf-8 #计算器类 class Count: def __init__(self,a,b): self.a=a self.b=b #计算加法 def sum(self): return self.a+self.b
创建一个Count类用于两个整数计算,通过__init__()方法对两个数进行初始化,接着创建sum()方法返回两个数相加的结果
#test.py #coding:utf-8 from Demo1 import Count #测试两个整数相加 class TestCount: def test_sum(self): try: add=Count(2,3).sum() assert(add==5),'integer addition result error!' except AssertionError as msg: print (msg) else: print ('Test pass') #执行测试类 mytest=TestCount() mytest.test_sum()
输出结果如下所示
首先,需引入Count类,然后在test_sum()方法中调用Count类并且传入两个参数2和3,然后调用Count类中的sum()方法对两个参数做加法,并且通过assert()方法判断add()的返回值是否等于5.如果不相等则抛出自定义的“Integer addition result error!~”异常信息,如果相等则打印“Test pass!~"
2.接下来讲解如何通过unittest单元测试框架编写单元测试用例
#coding:utf-8 from Demo1 import Count import unittest #测试两个整数相加 class TestCount(unittest.TestCase): def setUp(self): print "test start" def test_sum(self): j=Count(2,3).sum() self.assertEqual(j,5) def tearDown(self): print "test Down" if __name__=='__main__': unittest.main()
首先引入unittest模块,创建TestCount类继承unittest的TestCase类,可以将TestCase类看成是对特定类进行测试的集合。
setUp()方法用于测试用例执行前的初始化操作,这里只简单的打印“test start”信息。
tearDown()方法与setUp()方法相对应,用于测试用例执行之后的善后工作,这里打印“test end”信息。
在test_sum()中首先调用Count类要计算的值,调用sum()方法得到和,这里不再使用繁琐的异常处理,直接调用unittest框架所提供的assertEqual()方法对sum()的返回值进行断言,判断两者是否相等,assertEqual()方法由TestCase类继承而来。
unittest提供了全局的main()方法,使用它可以方便的将一个单元测试模块变成可以直接运行的测试脚本。main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并且自动执行。
Python知识补充
1.python文件的后缀为.py
2..py文件即可以用来直接执行,就想一个小程序一样,也可以用来作为模块被导入
3.在Python中导入模块一般使用的是import
if__name__=="main":语句说明
if就是如果的意思,说明这个句子是一个条件语句。
__name__,__name__作为模块的内置属性,就是.py文件的调用方式。
__main__,如上所述,.py文件由两种使用方式,作为模块被调用和直接使用,如果它等于“__main__”就表示是直接使用。