一、Unittest 单元测试 将测试结果和期望值作对比

(1)       继承

(2)       引用包

(3)       执行一次test就会调用一次setup和tearDown

(4)       类名以test开头

(5)       断言异常

(6)       有一个点表示通过一个测试用例

二、如果有一个单元测试执行失败,抛异常或断言失败,依然会被执行。断言失败会显示E

凡是以test开头的方法都是测试方法,反之不是,测试时候不会执行。其中,unittest.TestCase提供很多内置的条件判断,我们可以调用这些方法断言输出是否是我们所预计的。
一般分为两种,一种是assertEqual():断言某两个结果是否一致。一种是assertRaises():断言是否是期待抛出的指定错误类型。

另外,可以通过在单元测试中增加两个特殊函数setUp()和tearDown()函数,已实现在每调用一个测试方法的前后分别执行指定的动作,其中setUp是在测试函数调用前执行,tearDown是在之后执行,每次执行用例时都会: setUp->test_case->tearDown ;也就是说可以使用setUp和tearDown做每个用例的环境初始化

dome1:

每次执行用例时都会: setUp->test_case->tearDown ;也就是说可以使用setUp和tearDown做每个用例的环境初始化

 import unittest  

 class MyTestCase(unittest.TestCase):
# 预置环境
def setUp(self):
print '开始执行' # 清理环境
def tearDown(self):
print '结束执行' # 测试用例
def test_case1(self):
print '用例1' # 测试用例
def test_case2(self):
print '用例2' if __name__ == '__main__':
unittest.main()

dome2:

每个class用一次,setUpClass->test_case1->test_case2->tearDownClass;也就是说使用setUpClass、tearDownClass可以做所有用例的前置初始化和结束

 import unittest  

 class MyTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
print '开始执行' @classmethod
def tearDownClass(cls):
print '结束执行' # 测试用例
def test_case1(self):
print '用例1' # 测试用例
def test_case2(self):
print '用例2' if __name__ == '__main__':
unittest.main()

三、unittest练习

#写一个读文件的类,里面有个方法可以读取文件的全部内容。
#写个单元测试,断言文件中包含关键字"glory road"

main.py

 import unittest
import random
from handle_file import HandleFile class TestSequenceFunctions(unittest.TestCase):
def test_run(self):
content = HandleFile.read_file("e:\\test4\\ip.txt")
self.assertTrue("glory road" in content) if __name__ == "__main__":
unittest.main()

handle_file.py

 import os

 class HandleFile():
@staticmethod
def read_file(file_path):
if os.path.exists(file_path):
with open(file_path) as f:
return f.read()
else:
return "no file" if __name__=="__main__":
hf=HandleFile()
print hf.read_file("e:\\test4\\ip.txt")

【Python】unittest-1的更多相关文章

  1. 【python】unittest中常用的assert语句

    下面是unittest模块的常用方法: assertEqual(a, b)     a == b assertNotEqual(a, b)     a != b assertTrue(x)     b ...

  2. 【Python②】python之首秀

       第一个python程序 再次说明:后面所有代码均为Python 3.3.2版本(运行环境:Windows7)编写. 安装配置好python后,我们先来写第一个python程序.打开IDLE (P ...

  3. 【python】多进程锁multiprocess.Lock

    [python]多进程锁multiprocess.Lock 2013-09-13 13:48 11613人阅读 评论(2) 收藏 举报  分类: Python(38)  同步的方法基本与多线程相同. ...

  4. 【python】SQLAlchemy

    来源:廖雪峰 对比:[python]在python中调用mysql 注意连接数据库方式和数据操作方式! 今天发现了个处理数据库的好东西:SQLAlchemy 一般python处理mysql之类的数据库 ...

  5. 【python】getopt使用

    来源:http://blog.chinaunix.net/uid-21566578-id-438233.html 注意对比:[python]argparse模块 作者:limodou版权所有limod ...

  6. 【Python】如何安装easy_install?

    [Python]如何安装easy_install? http://jingyan.baidu.com/article/b907e627e78fe146e7891c25.html easy_instal ...

  7. 【Python】 零碎知识积累 II

    [Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...

  8. 【Python】-NO.97.Note.2.Python -【Python 基本数据类型】

    1.0.0 Summary Tittle:[Python]-NO.97.Note.2.Python -[Python 基本数据类型] Style:Python Series:Python Since: ...

  9. 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】

    1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...

  10. 【Python】-NO.98.Note.3.Python -【Python3 解释器、运算符】

    1.0.0 Summary Tittle:[Python]-NO.98.Note.3.Python -[Python3 解释器] Style:Python Series:Python Since:20 ...

随机推荐

  1. 笔记react router 4(一)

    用过react router4.X的小伙伴一定知道,比起3.X的版本,router的使用上有了很大的改变. 首先,我们只需要安装 react-router-dom 即可使用.看到“dom”想必你就该知 ...

  2. token原理详解

    概念与使用流程 是计算机术语:令牌,令牌是一种能够控制站点占有媒体的特殊帧,以区别数据帧及其他控制帧.token其实说的更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同 ...

  3. javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决

    javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在i ...

  4. object对象转string字符串

    var obj = {}; obj=new Array; obj.name='小王'; obj.sex='男'; var str=JSON.string(obj)

  5. 一、持久层框架(Hibernate)

    一.Hibernate 使用JDBC做数据库相关功能开发会做很多重复性的工作,创建连接,关闭连接,把字段逐一映射到属性中等.Hibernate把这些进行封装起来,使得数据库访问变得轻松简单. 1.创建 ...

  6. Mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法

    转载自:http://blog.csdn.net/jie11447416/article/details/50887888 1.案例中的数据结构和数据如下 2.在没有解决的时候,是这样的   SELE ...

  7. laravel Eloquent 查询数据库判断获取的内容是否为空

    原文地址:https://www.cnblogs.com/love-snow/articles/7205338.html 在使用 Laravel Eloquent 模型时,我们要判断取出的结果集是否为 ...

  8. getopts的使用方法

    getopts的使用 语法格式:getopts [option[:]] [DESCPRITION] VARIABLE option:表示为某个脚本可以使用的选项 ":":如果某个选 ...

  9. day01 初识Python

    今日主要内容 1.初识python 2.简单了解下python的数据类型 nubmer=int(input("请输入数字大小:")) if nubmer>66: print( ...

  10. Java代理:静态代理、动态代理

    要理解动态代理,需要先理解反射(http://www.cnblogs.com/Donnnnnn/p/7729443.html) 通俗理解: 在很多底层框架中都会用得到,比如struts,Spring等 ...