一、python 单元测试概述

一、单元测试概述

单元测试(unit testing )是指对软件中最小可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,是根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java中指一个类,图形化的软件中可以指一个窗口或者一个菜单等。总的来说,单元就是人为规定的最小的被测试功能模块

二、单元测试框架

不同的开发语言有不同的单元测试框架,比如
java的Junit ,TestNg,
C#的Nunit
Python的unittest,pytest,Pyunit,testtools,subunit……

单元测试的作用

  • 提供用例组织与执行
  • 提供丰富的断言方法
  • 提供丰富的日志与测试结果

三、下面我们重点介绍一些python 的单元测试

1.unittest简介

unittest 单元测试框架不仅可以适用于单元测试,还可以适用于web自动化测试用例的开发与执行,该测试框架可以组织执行用例,并且提供了丰富的断言方法,判断用例是否通过,最终生成测试结果
官方文档:https://docs.python.org/2.7/library/unittest.html

2.pytest简介

pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。

  • 能够支持简单的单元测试和复杂的功能测试
  • 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
  • 支持重复执行失败的case
  • 支持运行由nose, unittest编写的测试case
  • 具有很多第三方插件,并且可以自定义扩展
  • 方便的和持续集成工具集成
  • 支持参数化
    学习教程:刘春明老师的pytest简介
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于Python的软考备考系统项目的示例: 1. 项目概述:该软考备考系统是一个基于Python的命令行应用程序,它可以帮助用户进行软考备考,包括模拟考试、错题集、知识点复习等功能。 2. 技术实现: - 使用Python编写程序逻辑,包括数据处理、数据存储、业务逻辑等。 - 使用SQLite数据库存储用户信息、考试数据、错题集等信息。 - 使用命令行界面进行交互,使用Python的argparse模块解析命令行参数。 - 使用Python的unittest模块进行单元测试,保证程序的正确性。 3. 功能模块: - 用户管理:包括用户注册、登录、退出等功能,用户信息存储在SQLite数据库中。 - 模拟考试:根据用户选择的考试科目和考试时间,随机生成相应数量的考题,计算得分并存储考试结果。 - 错题集:记录用户答错的考题,并提供查看、删除、导出等功能。 - 知识点复习:根据用户选择的考试科目,提供相应的知识点复习资料,并记录用户的复习进度。 4. 代码示例: 以下为该软考备考系统的部分代码示例,包括用户登录、模拟考试和错题集功能: 用户登录功能: ```python import sqlite3 def login(username, password): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute('SELECT * FROM users WHERE username=? AND password=?', (username, password)) user = cursor.fetchone() conn.close() if user: return user[0] else: return None ``` 模拟考试功能: ```python import random import sqlite3 def start_exam(user_id, subject, duration): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute('SELECT * FROM questions WHERE subject=?', (subject,)) questions = cursor.fetchall() random.shuffle(questions) questions = questions[:duration] score = 0 for question in questions: print(question[1]) for i, option in enumerate(question[2:]): print('{}. {}'.format(i+1, option)) answer = input('Your answer: ') if answer == question[6]: score += 1 else: cursor.execute('INSERT INTO mistakes (user_id, question_id) VALUES (?, ?)', (user_id, question[0])) conn.commit() cursor.execute('INSERT INTO exams (user_id, subject, score) VALUES (?, ?, ?)', (user_id, subject, score)) conn.commit() conn.close() print('Your score is: {}/{}'.format(score, duration)) ``` 错题集功能: ```python import sqlite3 def show_mistakes(user_id): conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute('SELECT questions.* FROM questions INNER JOIN mistakes ON questions.id=mistakes.question_id WHERE mistakes.user_id=?', (user_id,)) questions = cursor.fetchall() conn.close() for question in questions: print(question[1]) for i, option in enumerate(question[2:]): print('{}. {}'.format(i+1, option)) input('Press Enter to continue...') ``` 以上代码只是该软考备考系统的部分示例,完整的代码可以根据需求进行设计和实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值