zoukankan      html  css  js  c++  java
  • python-zx笔记9-单元测试

    unittest核心

    1.TestCase

    一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

    2.TestSuite

    而多个测试用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuiteTestLoader是用来加载TestCaseTestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后addTestSuite中,再返回一个TestSuite实例。

    3.TextTestRunner

    TextTestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。 测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

    4.Fixture

    而对一个测试用例环境的搭建和销毁,是一个fixture

    //calculator.py
    
    class Math:
        def __init__(self,a,b):
            self.a = int(a)
            self.b = int(b)
    
        def add(self):
            return self.a + self.b
    
        def jian(self):
            return self.a - self.b

    单元测试

     1 from calculator import Math
     2 import unittest
     3 
     4 class TestMath(unittest.TestCase):
     5     def setUp(self):
     6         print("Start test")
     7 
     8     def test_add(self):
     9         j = Math(5,10)
    10         self.assertEqual(j.add(),15)
    11         # self.assertEqual(j.add(),12)
    12 
    13     def tearDown(self):
    14         print("test end")
    15 
    16 if __name__=='__main__':
    17     #构造测试集
    18     suite = unittest.TestSuite()
    19     suite.addTest(TestMath("test_add"))
    20 
    21     #执行测试
    22     runner = unittest.TextTestRunner()
    23     runner.run(suite)
  • 相关阅读:
    基于redis实现rpc服务注册
    手写web服务器:实现简单filter逻辑
    手写controller、requestMapping注解,实现简单请求
    docker 制作自己的镜像
    MySqlConnector.MySqlException (0x80004005): Table '****' doesn't 解决方法
    在docker 容器中安装vim
    VM CentOS 安装Docker
    win 10的VM上安装centOS后的网络连接
    js数组方法大全
    Netcore使用Filter来实现接口的全局异常拦截
  • 原文地址:https://www.cnblogs.com/bell1991/p/8436458.html
Copyright © 2011-2022 走看看