单元测试-unitetest-learn note 2

概念解释

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。介绍相关的杰哥概念

TestCase :也就是测试用例

TestSuite :多个测试用例集合在一起,就是TestSuite

TestRunner:测试的执行是单元测试非常重要的概念,一般单元测试框架会提供丰富的执行策略和执行结果,在unittest 单元测试框架中,通过TextTestRunner类提供的run()方法来执行 test suite/test case 。 test runner 可以使用图形界面、文本界面,或返回一个特殊的值等方式来表示测试结果

Test Fixture:搭建和销毁测试用例环境,就是一个 fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现

import unittest
class TestStringMethods(unittest.TestCase): # 继承unittest.TestCase
    # 每个测试用例执行之前做操作
    def setUp(self):
        print ('test start')

    def test_upper(self):     # 测试用例
        self.assertEqual('foo'.upper(), 'FOO','1111')

    def test_isupper(self):    # 测试用例
        self.assertTrue('FOO'.isupper(),'333')
        self.assertFalse('FOo'.isupper(),'4444')

    # 每个测试用例执行之后做操作
    def tearDown(self):
        print ('test end')
if __name__=="__main__":
    unittest.main()   #运行所有的测试用例

unittest  main() 方法使用TestLoader类来搜索所有包含在该模块中以'test'命名开头的测试方法,并自动执行他们

构造测试集

if __name__=="__main__":
    #构造测试集
    suite=unittest.TestSuite()
    suite.addTest(TestStringMethods("test_upper"))

    #执行测试
    runner=unittest.TextTestRunner()
    runner.run(suite)

 断言方法:

Method

Checks that

New in

assertEqual(a, b)

== b

 

assertNotEqual(a, b)

!= b

 

assertTrue(x)

bool(x) is True

 

assertFalse(x)

bool(x) is False

 

assertIs(a, b)

is b

3.1

assertIsNot(a, b)

is not b

3.1

assertIsNone(x)

is None

3.1

assertIsNotNone(x)

is not None

3.1

assertIn(a, b)

in b

3.1

assertNotIn(a, b)

not in b

3.1

assertIsInstance(a, b)

isinstance(a, b)

3.2

assertNotIsInstance(a, b)

not isinstance(a, b)

3.2

原文地址:https://www.cnblogs.com/yan-2010/p/14247208.html