unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件
1. 在pycharm中新建unittest模块
2. unitest中包含四个常用套件
import unittest
class LocateDemo(unittest.TestCase):
# 测试环境的准备(所有的测试用例执行之前的准备工作)
@classmethod
def setUpClass(cls):
print("所有的测试用例执行之前的准备工作")
# 每一条测试用例执行之前的准备工作
def setUp(self):
print()
print("每一条测试用例执行之前的准备工作")
# 每一条测试用例执行完后的收尾工作
def tearDown(self):
print("每一条测试用例执行完后的收尾工作")
# 所有的测试用例执行完后的收尾工作
@classmethod
def tearDownClass(cls):
print("所有的测试用例执行完后的收尾工作")
# 所有的测试用例都是实例方法,且方法名称必须以test_开头
def test_user_login(self):
print("这是测试用户注册的用例")
self.assertEqual(True, True)
def test_second_case(self):
print("这是第二条测试用例")
self.assertEqual(True, True)
if __name__ == '__main__':
unittest.main()
3. 有8种常用的断言方法
1. 判断结果是否为空
2. 判断结果是否不为空
3. 判断实际结果与预期结果是否相等
4. 判断实际结果与预期结果是否不相等
5. 判断实际结果是否被包含在预期结果中
6. 判断实际结果是否不被包含在预期结果中
7. 判断结果是否为真
8. 判断结果是否为假
4. 案例
mathDemo.py
class MathDemo: def add(self, num1, num2): sum = num1+num2 return sum def sub(self, num1, num2): sum = num1 - num2 return sum
mathDemoTest.py
import unittest from mathDemo import MathDemo class MyTestCase(unittest.TestCase): # 在执行所有的测试用例之前必须对mathDemo类进行实例化 @classmethod def setUpClass(cls): cls.mathDemo = MathDemo() # 对MathDemo类中的add方法编写测试用例 def test_add(self): actual_value = self.mathDemo.add(1, 3) # 断言:用来判断实际结果是否与预期结果相符的方法 self.assertEqual(actual_value, 4) # 对MathDemo类中的add方法编写测试用例 def test_add2(self): actual_value = self.mathDemo.add(-1, -3) # 断言:用来判断实际结果是否与预期结果相符的方法 self.assertEqual(-4, actual_value) if __name__ == '__main__': unittest.main()