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()
    
  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/linyk/p/11482167.html
Copyright © 2011-2022 走看看