zoukankan      html  css  js  c++  java
  • unittest模块(单元测试)

    单元测试概念:

    软件中的最小可测试单元进行检查和验证

    unittest四大部分:
    Test fixture: 就是运行被测软件所需要的一切东西,这个“东西”不单只是数据,同时还包括对被测软件的准备,例如实例化某个被测方法所在的类,准备数据库的ConnectionString等。通常来说,有三种方法来准备Test Fixture(内联,委托,隐式);

    Test case测试用例;

    Test suite测试用例(Test case)的集合;

    Test runner执行测试用例。

    示例:

    >>> import unittest

    >>> class Test_x(unittest.TestCase):

    ...     def setUp(self):

    ...         self.seq=1

    ...     def test_a(self):

    ...         return self.seq+1

    ...     def test_b(self):

    ...         return self.seq+2

    ...

    >>> if __name__=="__main__":

    ...     unittest.main()

    执行过程:

    Test_x继承unittest.TestCase类,setUp是准备测试(Test Fixture);例子中一共有两个testcase,组成了一个testsuite;loader.TestLoader类中有一个loadTestsFromTestCase()方法是加载测试用例(TestLoader);最后通过unittest.main()运行所有测试用例。

    testsuite(测试用例集合)生成核心语句:

    testCaseNames中的每一个元素,使用testCaseClass为其构造对象,其结果是一个TestCase的对象集合。

    loadTestsFromTestCase()方法核心是下面这句:

    self.suiteClass(map(testCaseClass, testCaseNames))

     等同于:

        testcases = []

        for name in testCaeNames:  

        testcases.append(TestCase(name))  

        loaded_suite = self.suiteClass(tuple(testcases)) 

    setUpClass方法核心:

    setUpClass()在一个测试类中在所有test用例开始之前,执行一次且必须使用到Testsuite(只有在TestSuite的run方法里面才对其调用):

    如果在执行过程中想改变setUpClass定义变量值,可以把值定义成列表类型等可变类型。

    tearDownClass方法:

    tearDownClass()在一个测试类中在所有test结束之后,执行一次且必须使用到Testsuite(只有在TestSuite的run方法里面才对其调用)

    测试过程当中需要对用例进行一些特殊处理,比如标记用例失败忽略@unittest.expectedFailure,跳过执行@unittest.skip

  • 相关阅读:
    点击新闻弹出新闻内容,并且新闻内容根据鼠标移动
    阻止用户复制页面上的文字的几种方法
    js简易聊天框- 鼠标和回车键发送消息
    Java——package和import关键字
    Java——static关键字
    Java——单例模式初步
    Java——this关键字
    Java面向对象的特征一:封装性
    Java再谈方法
    Java——对象
  • 原文地址:https://www.cnblogs.com/zhangtebie/p/11185943.html
Copyright © 2011-2022 走看看