首页 > 其他分享 >unittest框架

unittest框架

时间:2022-09-04 22:00:51浏览次数:39  
标签:username actual 框架 unittest expected login password

前言

  本次内容主要介绍单元测试框架unittest。

一、什么是单元测试?

  就是对一些函数或者类进行测试的过程。

二、单元测试框架的作用?

  • 收集用例
  • 处理断言
  • 测试报告

三、unittest相关概念

1、TestCase

  测试用例。

2、TestSuite

  测试套件。

3、TestLoader

  测试用例加载器。

4、TestRunner

  运行器、执行器。主要用于初始化运行器

5、Fixture

  测试夹具,测试固件。定义在测试类的下面,主要用于测试环境的准备和清理工作,包含有setUp(在每个测试用例执行之前会执行的代码),tearDown(在每个测试用例执行之后会执行的代码),setUpClass(在每个测试类之前只执行一次的代码,需要使用@classmethod声明),tearDownClass(在每个测试类之后只执行一次的代码,需要使用@classmethod声明)四个函数。

四、unittest框架的简单应用

 上图为本次讲解需要用到的相关模块,其中”run_test“是unittest自带的,导入第三方库BeautifulReport生成测试报告。report.html是测试报告文件。

模块1:test_add.py

def add(a, b):
    return a + b


# 1,导入 unittest, 是python内置的
import unittest

# 2, 测试类
#TestAdd继承TestCase
class TestAdd(unittest.TestCase):
    def test_add_success(self):
        a = 3
        b = 4
        expected = 7
        actual = add(a, b)
        # unittest 已经实现好的断言方式
        self.assertEqual(expected, actual)

模块2:test_login.py

import unittest

#定义login()
def login(username=None, password=None):
    if username is not 'xiao'  or password is not '123456':
        return {"code": "400", "msg": "用户名或密码错误"}
    if username == 'xiao' and password == '123456':
        return {"code": "200", "msg": "登录成功"}
    return {"code": "300", "msg": "用户名或密码为空"}

#定义测试类,包含4条测试用例
class TestLogin(unittest.TestCase):
    def test_login_success(self):
        username = 'xiao'
        password = '123456'
        expected = {"code": "200", "msg": "登录成功"}
        actual = login(username, password)
        self.assertEqual(expected, actual)

    def test_login_fail1(self):
        username = ''
        password = '123456'
        expected = {"code": "300", "msg": "用户名或密码为空"}
        actual = login(username, password)
        self.assertEqual(expected, actual)

    def test_login_fail2(self):
        username = 'xiao'
        password = ''
        expected = {"code": "300", "msg": "用户名或密码为空"}
        actual = login(username, password)
        self.assertEqual(expected, actual)

    def test_login_fail3(self):
        username = 'xiao'
        password = '123'
        expected = {"code": "400", "msg": "用户名或密码错误"}
        actual = login(username, password)
        self.assertEqual(expected, actual)

模块3:run_test.py

#导入unittest模块
import unittest
from BeautifulReport import BeautifulReport

#TestSuite 测试套件,存储所有的测试用例
#初始化测试套件
suite = unittest.TestSuite()

#加载所有的测试用例
loader = unittest.TestLoader()

#发现用例
cases = loader.discover(r"./")

#将找到的所有测试用例加载到suite
suite.addTest(cases)

#运行用例
#初始化运行器
# runner = unittest.TextTestRunner()
# runner.run(suite)

runner = BeautifulReport(suite)
runner.report('测试报告')

 

标签:username,actual,框架,unittest,expected,login,password
From: https://www.cnblogs.com/xiaofenggou/p/16653754.html

相关文章

  • 框架
    练习用框架#include<bits/stdc++.h>usingnamespacestd;intmain(){ return0;}考试用框架#include<iostream>#include<cstdio>#include<algorithm>usingna......
  • 02-mORMot框架样例学习-02 - Embedded SQLite3 ORM(SQLite3 数据库)
     programProject01;uses{$ISynDprUses.inc}//useFastMM4onolderDelphi,orsetFPCthreadsForms,SysUtils,SynCommons,mORMot,Unit1......
  • Python Web开发主流框架
    Web开发是Python语言应用领域的重要部分,也是工作岗位最多的领域。如果你对基于Python的Web开发有兴趣,正打算使用Python做Web开发,或者已经是一个Web开发者有工作需要,要做自......
  • web框架-django框架
    目录web框架编写web框架模块动静态网页jinjia2模块python主流web框架django框架版本下载安装操作目录结构三板斧静态文件操作form表单request对象方法MySQL数据库连接ORM数......
  • django框架-4
    目录网页伪静态视图层模板层网页伪静态将动态网页伪装成静态网页从而提升网页被搜索引擎收录的概率(掏点票票更快更能提高搜索频率)表现形式就是网址乍一看像一个具......
  • Stream流中使用的Fork/Join框架
            Fork/Join简单案例:使用Fork/join计算1-10000的和当一个任务的计算数量大于3000的时候拆分任务,数量小于3000的时候就计算packagecom.tuling.st......
  • 【2022-09-02】Django框架(四)
    Django框架(四)Django框架之伪静态概念静态文件:数据是写死,永远不会修改伪静态:将一个动态页面伪装成静态页面#为什么要伪装?伪装的目的在于增大本网站的seo查询力......
  • 计算机组成结构——总体框架
    计算机主要包括CPU、存储器、输入输出设备三大部分。CPU其中CPU内包括控制器和算数逻辑单元。控制器控制器做为计算机的核心,其主要包括PC即程序计数器、IR指令寄存器,C......
  • 为什么要在学习花哨的 JS 框架之前学习 Vanilla JavaScript?
    为什么要在学习花哨的JS框架之前学习VanillaJavaScript?这是DavidKopal的博客。在此博客中,您可以了解VanillaJS在您的职业生涯中的好处。他在博客中分享的文字......
  • SpringSecurity - 企业应用的安全框架
    参考资料1、官方网站:https://docs.spring.io/spring-security/reference/index.html认证(Authentication)用户认证:验证某个用户是否为系统中的合法主体,也就是说用户能否访......