unittest.TestCase()
:是全部测试用例类继承的基本类,一个类只要继承了unittest中的TestCase类就是一个测试用例类,就能够在类中写测试用例;from unittest import TestCase, main class MyTest(TestCase): # 继承unittest.TestCase def setUp(self): # 测试用例执行前的初始化工做 print('开始执行') def tearDown(self): # 测试用例执行以后的善后工做 print('执行完毕') def testWay(self): print('这是测试用例') if __name__ == '__main__': main() # 运行全部的测试用例
unittest.TestSuite()
:用来建立测试套件,其中有一个addTest()方法能够将一个或多个测试用例添加到测试套件中,先添加的哪一个方法就先运行哪一个方法;html
unittest.TextTextRunner()
:经过该类中的run()方法来运行suite所组装的测试用例;python
unittest.defaultTestLoader()
:经过该类下面的discover()方法可自动根据测试目录start_dir匹 配查找测试用例模块(以test开头,以.py结尾的文件,例如:test*.py), 并将查找到的测试用例 组装到测试套件,所以能够直接经过run()方法执行discover;web
unittest.skip()
:装饰器,可过滤不须要执行的用例,使这个用例不执行;数据库
unittest.main()
:能够方便的将一个单元测试模块变为可直接运行的测试脚本,main()方法使 用TestLoader类来搜索全部包含在该模块中以“test”命名开头的测试方法,并自动执行他们 ;cookie
setUp()
方法:用于测试用例执行前的初始化。如测试用例中须要访问数据库,能够在setUp中创建数据库链接并进行初始化。若是测试用例须要登陆web,能够先获取cookie,获取文件句柄;框架
tearDown()
方法:用于测试用例执行以后的善后工做,如关闭数据库链接,关闭文件;单元测试
assert*()
:断言方法,至关于if-else里面的条件判断,在执行测试用例的过程当中,最终用例是否执行经过,是经过判断测试获得的实际结果和预期结果是否相等决定的;测试
assertEqual(self, first, second, msg=None)
:判断两个参数是否相等,若是相等则测试用例经过;ui
assertNotEqual(self, first, second, msg=None)
:判断两个参数是否相等,若是不相等则测试用例经过;code
assertTrue(self, expr, msg=None)
:判断是否为真,为真则测试用例经过;
assertFalse(self, expr, msg=None)
:判断是否为假,为假则测试用例经过;
assertIs(a, b, msg=None)
:断言a是不是b,若是是则测试用例经过。
更多的断言方法能够查看官网:https://docs.python.org/3/library/unittest.html#assert-methods
首先从unittest模块中导入TestCase、main等须要用到的类;
而后自定义一个类继承TestCase类;
能够重写TestCase类中的setUp()初始化方法,和tearDown()清理方法,这两个方法是成对出 现的;
而后编写以字母开头的测试用例,执行顺序默认是根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z;
最后调用unittest.main()方法将一个单元测试模块变成能够直接运行的测试脚本,而后自动执行测试用例;
from unittest import TestCase, main class MyTestCase(TestCase): # setUp、tearDown每次执行一个test开头的方法时,都会调用一次 def setUp(self): print('setup') def tearDown(self): print('tearDown') def test_1(self): print('第一个测试用例') def test_2(self): print('第二个测试用例') if __name__ == '__main__': main()