一、测试级别
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()