第九天:单元测试

一、测试级别

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()

猜你喜欢

转载自www.cnblogs.com/linyk/p/11482167.html