详解Django中的unittest及应用
作者:rongge 发布时间:2022-10-24 08:26:54
unittest是python的一个单元测试框架
关于断言
它是用于对一个确定结果和预测结果的一种判断,如果结果正确无任何返回效果,如果结果错误;会抛出AssertionError 异常,如果后面跟了msg则返回msg内容
assert 2 == 2
assert 2 == 1 * 2
assert 2 + 0 == 1 * 2
# ----------------- 以上无任何返回效果
assert 1 > 3, 'wrong'
'''
Traceback (most recent call last):
File "D:/project_of_3期课程/day22/类.py", line 259, in <module>
assert 1 > 3, 'wrong'
AssertionError: wrong
'''
unittest模块属性说明
unittest的属性
unittest.main():使用它可以方便的将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。
unittest.TestSuite():unittest框架的TestSuite()类是用来创建测试套件的。
unittest.TextTextRunner():unittest框架的TextTextRunner()类,通过该类下面的run()方法来运行suite所组装的测试用例,入参为suite测试套件。
TestCase类的属性
setUp():方法用于测试用例执行前的初始化工作。如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器。
tearDown():方法用于测试用例执行之后的善后工作。如关闭数据库连接。关闭浏览器。
assert*():一些断言方法,在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的。
assertEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,相等则测试用例通过。
assertNotEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,不相等则测试用例通过。
assertTrue(x,[msg='测试失败时打印的信息']):断言x是否True,是True则测试用例通过。
assertFalse(x,[msg='测试失败时打印的信息']):断言x是否False,是False则测试用例通过。
assertIs(a,b,[msg='测试失败时打印的信息']):断言a是否是b,是则测试用例通过。
assertNotIs(a,b,[msg='测试失败时打印的信息']):断言a是否是b,不是则测试用例通过。
assertIsNone(x,[msg='测试失败时打印的信息']):断言x是否None,是None则测试用例通过。
assertIsNotNone(x,[msg='测试失败时打印的信息']):断言x是否None,不是None则测试用例通过。
assertIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b中,在b中则测试用例通过。
assertNotIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b中,不在b中则测试用例通过。
assertIsInstance(a,b,[msg='测试失败时打印的信息']):断言a是是b的一个实例,是则测试用例通过。
assertNotIsInstance(a,b,[msg='测试失败时打印的信息']):断言a是是b的一个实例,不是则测试用例通过。
TextTextRunner的属性
run():是运行测试套件的测试用例,入参为suite测试套件。
unittest.TextTestRunner(verbosity=2).run(suite)
unittest框架使用
方式一:unittest.main()来启动单元测试模块
# coding=utf-8
import unittest
# 方式一:unittest.main()来启动单元测试模块
class MyTestCase(unittest.TestCase):
def setUp(self):
print('测试环境')
def test(self):
print('测试用例')
self.assertEquals(4, 2 * 2)
self.assertEqual(1, 3, 'something was wrong')
def tearDown(self):
print('环境销毁')
if __name__ == '__main__':
unittest.main()
方式二:添加到testsuite集合中,再加载所有的被测试对象
# coding=utf-8<br>import unittest<br><br>class TestCase(unittest.TestCase):
def test1(self):
print('one')
def test2(self):
print('two')
class TestCase1(unittest.TestCase):
def test1(self):
print('three')
def test2(self):
print('four')
if __name__ == '__main__':
un1 = unittest.TestLoader().loadTestsFromTestCase(TestCase)
un2 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
suite = unittest.TestSuite([un1, un2])
unittest.TextTestRunner(verbosity=2).run(suite)
来源:https://www.cnblogs.com/rongge95500/articles/10512186.html


猜你喜欢
- Object 类型的对象虽然有 toString 方法,但结果却是 [Object Object] 让人没法理解的字符。比如简单的对象:{n
- 最近在学习关于Python数据分析与挖掘方面的知识,在学习到Python数据分析工具方面时,需要安装一些第三方扩展库来增强Python的数据
- 本文实例讲述了Python回调函数用法。分享给大家供大家参考。具体分析如下:一、百度百科上对回调函数的解释:回调函数就是一个通过函数指针调用
- 1.下载 Microsoft SQL Server 2019 Red Hat 存储库配置文件:#curl -o /etc/yum.repos
- SCRIPT 标记 用于包含JavaScript代码. 属性 LANGUAGE&nbs
- 很久之前用到的,现在整理在这,里面一些代码来源于网上,不过有些bug已被我修改了。1.查询结果转XMLDECLARE @ParameterS
- Python-pymysql如何向SQL语句中传参方法一:不传递参数## 方式一、不传递参数 id = "01" nam
- 微信小程序可滑动月日历组件此日历可进行左右滑动,展示签到打卡信息,和大家分享一下。如果样式变形,请检查是否有共用样式起冲突展示一下效果图在c
- 函数作为值Go编程语言提供灵活性,以动态创建函数,并使用它们的值。在下面的例子中,我们已经与初始化函数定义的变量。此函数变量的目仅仅是为使用
- phpMyAdmin 是一套可以通过WEB来管理 MySQL-server 以及单一数据库的 PHP
- <%'asp事务处理。'测试数据库为sql server,服务器为本机,数据库名为test,表名为a,两个字段id(i
- sequence 序列sequence(序列)是一组有顺序的元素的集合(严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素
- 深度学习中,模型训练一般都需要很长的时间,由于很多原因,导致模型中断训练,下面介绍继续断点训练的方法。方法一:载入模型时,不必指定迭代次数,
- 最近在这找了好久的js菜单,都没找到满意的,今天找了个,觉得不错,最重要的是简单,希望大家可以参照一下先看看效果图吧:代码特点:js+css
- 1 Kmean图像分割按照Kmean原理,对图像像素进行聚类。优点:此方法原理简单,效果显著。缺点:实践发现对于前景和背景颜色相近或者颜色区
- 经常开发asp但对于细致的说法,真实不太清楚,这里简单的介绍下。一般情况下读取数据都是用rs.open sql,conn,1,1修改数据:r
- 概述在JavaScript前端开发中,函数与对其状态即词法环境(lexical environment)的引用共同构成闭包(closure)
- 这学期在学习编译原理,最近的上机作业就是做一个简单的词法分析器,在做的过程中,突然有个需求就是判断一个字符串是否为合法的标示符,因为我是用p
- 最近遇到一个问题,就是获取表单中的日期往后台通过json方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN 找了些资
- 装饰器装饰器的定义关于装饰器的定义,我们先来看一段github上大佬的定义:Function decorators are simply w