[Python unittest] 1-Basic

  1. Test Feture

    测试夹具,代表执行一个或多个测试所需的准备工作,以及任何关联清理操作,这可能涉及到,例如创建临时代理数据库、目录或启动服务器进程
  2. Test Case

    测试用例,是测试的最小单元。它检查特定输入集的特定响应。单元测试提供了一个基类,可用于创建新的测试用例
  3. Test Suite

    测试套件,是测试用例、测试套件或两者的集合。它用于聚合应该一起执行的测试。
  4. Test Runner

    测试运行,执行测试,并提供给用户结果,可以使用图形界面、文本接口,或者返回一个特殊值来指示执行测试的结果
  • 新建一个tests.py文件

    import unittest
    
    class TestStringMethods(unittest.TestCase):
    
        def test_upper(self):
            self.assertEqual('foo'.upper(), 'FOO')
    
        def test_isupper(self):
            self.assertTrue('FOO'.isupper())
            self.assertFalse('Foo'.isupper())
    
        def test_split(self):
            s = 'hello world'
            self.assertEqual(s.split(), ['hello', 'world'])
            # check that s.split fails when the separator is not a string
            with self.assertRaises(TypeError):
                s.split(2)
    
    if __name__ == '__main__':
        unittest.main()
    

    这就是一个继承了unittest.TestCase的测试用例

    每个测试用例的关键是:assertequal()检查预期的结果;asserttrue()或assertfalse()验证条件;assertraises()验证一个特定的异常得到处罚。这些方法被用来代替断言语句,因此测试运行器可以累积所有测试结果并生成报告。
    之后会用到的setup()和teardown()方法,允许您定义每个测试方法执行之前和之后的操作。
  • 在命令行执行该脚本

    python .../tests.py
    ...
    ----------------------------------------------------------------------
    Ran 3 tests in 0.001s
    
    OK
    

     

    将最后一行unittest.mai(),修改为
    suite = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
    unittest.TextTestRunner(verbosity=2).run(suite)
    

    再次执行


    test_isupper (__main__.TestStringMethods) ... ok
    test_split (__main__.TestStringMethods) ... ok
    test_upper (__main__.TestStringMethods) ... ok
    
    ----------------------------------------------------------------------
    Ran 3 tests in 0.001s
    
    OK
    

     

posted @ 2017-08-17 09:35  懒惰的咕噜  阅读(169)  评论(0编辑  收藏  举报