zoukankan      html  css  js  c++  java
  • 第九天:单元测试

    一、测试级别

    1、单元测试

    • 对代码最基本单元(函数、方法)的测试
    • 给予特定条件判断结果是否符合预期
    • 相对整个程序的测试,单元测试简化了测试任务
    • unittest模块
    import unittest
    def add(a, b):
        return a + b
    def subtract(a, c):
        return a - b  
    class MyTest(unittest.TestCase):
        def test_add(self):
            self.assertEqual(8, add(5, 4)) #断言是否相等
        def test_subtract(self):
            self.assertEqual(2, subtract(5, 3))
    if __name__ == '__main__':
        unittest.main()
    

    2、集成测试

    3、系统测试

    4、验收测试

    5、回归测试

    二、代码组织

    1、断言

    • assertEqual(值,表达式)是否相等
    • assertTrue() 是否为真
    • assertIn() 是否包含
    • assertAlmostEqual() 是否约等于
    • assertIs() 是否为同引用
    • assertIsNone() 是否为空
    • assertIsInstance() 是否某类型实例
    • assertGreater() 是否大于
    import unittest
    person = {'name':'Mike', 'age': 20}
    numbers = [1, 2, 3, 88, 7, 44]
    s = '优品课堂 codeclassroom.com'
    class TestAssert(unittest.TestCase):
        def test_assert_method(self):
            #self.assertEqual('Mike', person.get('name'))
            #self.assertTrue("优品课堂" in s)
            #self.assertIn("优品课堂", s)
            #self.assertAlmostEqual(3.3,1.1+2.2)
            #self.assertIs(True + 1, 2)
            #self.assertIsNone(person.get('Name', None))
            #self.assertIsInstance(numbers[0], int)
            #self.assertGreater(7, numbers[0])       
    if __name__ == '__main__':
        unittest.main()
    

    2、装置

    • 测试用例类继承自unittest.TestCase
    • test_定义功能测试函数名
    • setUp()函数定义准备初始化代码
    • tearDown() 函数执行清理工作
    class Calculator:
        def __init__(self, x, y):
            self.x = x
            self.y = y
        def add(self):
            return self.x + self.y
        def subtract(self):
            return self.x - self.y
    if __name__ == '__main__':
        c = Calculator(5, 3)
        print(c.add())
    
    import unittest
    from calculator import Calculator
    class CalculatorTest(unittest.TestCase):
        def setUp(self):
            self.c = Calculator(5, 3)
        def test_add(self):
            # c = Calculator(5, 3)
            self.assertEqual(8, self.c.add())
        def test_subtract(self):
            # c =Calculator(8, 4)
            self.assertEqual(4, self.c.subtract())
        def tearDown(self):
            del self.c
    if __name__ == "__main__":
        unittest.main()
    
  • 相关阅读:
    MySql的性能优化
    MySql的备份还原
    MySql的数据目录
    MySql的事务
    MySql的视图
    算法笔记_006:全源最短路径问题【动态规划法】
    算法笔记_005:堆排序问题【变治法】
    算法笔记_004:8枚硬币问题【减治法】
    算法笔记_003:矩阵相乘问题【分治法】
    使用MongoDB和JSP实现一个简单的购物车系统
  • 原文地址:https://www.cnblogs.com/linyk/p/11482167.html
Copyright © 2011-2022 走看看