UnitTest自我学习

142 阅读1分钟

UnitTest单元测试

Unittest框架核心概念:

1.test case:测试用例

2.test suite:测试套件

3.test runner: 用来执行测试用例和测试套件,并返回测试用例的执行结果

4.test fixure:测试夹具

unittest

  1. 导入 unittest 模块
  2. 创建一个测试类,并继承 unittest.TestCase,作为基类
  3. 重写 setUp 和 tearDown 方法
  4. 定义测试函数,函数名以 test_ 开头
  5. 在测试函数中使用断言来判断测试结果是否符合预期。
  6. 调用 unittest.main() 方法运行测试用例
import unittest

def login(username, password):
    if username == 'ncs' and password == '123':
        res = {"code": 200, "msg": "登录成功"}
        return res
    return {"code": 400, "msg": "登录失败"}

class TestLogin(unittest.TestCase):

    def test_login_success(self):
        """测试登录成功"""
        test_data = {"username": "ncs", "password": "test"}
        expect_data = {"code": 200, "msg": "登录成功"}
        res = login(**test_data)
        self.assertEqual(res, expect_data)

    def test_login_error_with_error_password(self):
        """账号正确,密码错误,登录失败"""
        test_data = {"username": "ncs", "password": "12345"}
        expect_data = {"code": 400, "msg": "登录失败"}
        res = login(**test_data)
        self.assertEqual(res, expect_data)

   

if __name__ == '__main__':
    unittest.main()

断言方法

以下是常用的断言方法:

  • assertEqual(a, b, msg=None):验证 a 等于 b。
  • assertNotEqual(a, b):验证 a 不等于 b。
  • assertTrue(x):验证 x 是否为 True。
  • assertFalse(x):验证 x 是否为 False。
  • assertIs(a, b):验证 a 是否是 b。
  • assertIsNot(a, b):验证 a 是否不是 b。
  • assertIsNone(x):验证 x 是否为 None。
  • assertIsNotNone(x):验证 x 是否不为 None。
  • assertIn(a, b):验证 a 是否在 b 中。
  • assertNotIn(a, b):验证 a 是否不在 b 中。
  • assertIsInstance(a, b):验证 a 是否是 b 类型的实例。
  • assertNotIsInstance(a, b):验证 a 是否不是 b 类型的实例。