您的位置:首页 > 其它

Unittest操作简单实例进行系统讲解测试用例

2017-04-22 00:00 701 查看
#coding=utf8
'''
测试hello类。
创建一个测试用例通过子类TestCase。
在测试用例中定义了五个独立的方法,且方法命名以test开头。
这个命名方便通知test runner哪些方法表示测试。
每个测试的关键是调用:
assertEqual()检查是否是期望结果;
assertTrue()或 assertTrue()验证条件是否正确;
assertRaises()对指定异常进行保存验证
使用这些方法而不是assert语句,因此测试运行器可以获取所有测试结果并生成报告.

setUp()在执行测试方法之前,初始化测试环境
tearDown()方法是清场,断绝与其他测试用例的关联

最后的模块使用简单的方法运行测试。
unittest.main()为测试脚本提供一个命令行接口。
通过命令行运行时,产生的报告是类似与下面格式:
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK

不用unittest.main(),还有其他方法来运行测试,
这些方法具有更好的控制级别、更少的输出、并且不需要从命令行运行。
例如,最后两行可以替换为:
suite = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
unittest.TextTestRunner(verbosity=2).run(suite)
TestStringMethods代表测试用例的名字,本例中代表:TestHello
产生的报告方式如下:
test_HELLO (__main__.TestHello) ... ok
test_HELLo (__main__.TestHello) ... ok
test_HELlo (__main__.TestHello) ... ok
test_HEllo (__main__.TestHello) ... ok
test_Hello (__main__.TestHello) ... ok
test_HelloType (__main__.TestHello) ... ok

----------------------------------------------------------------------
Ran 6 tests in 0.001s

OK

'''
#导入测试框架unittest中的TestCase
from unittest import TestCase,main,TextTestRunner,TestLoader

#定义测试包
class Hello(object):
'''定义一个静态属性列表'''
Hl=["Hello","HEllo","HELlo","HELLo","HELLO"]

class TestHello(TestCase):
'''创建一个TestCase'''
#对测试进行初始化
def setUp(self):
'''创建一个Hello对象'''
self.HL=Hello()

'''创建测试函数'''
def test_Hello(self):
self.assertEqual(self.HL.Hl[0], "Hello", "Hello")
self.assertTrue("Hello"==self.HL.Hl[0])
self.assertFalse("Hello"==self.HL.Hl[1])

def test_HEllo(self):
self.assertEqual(self.HL.Hl[1], "HEllo", "HEllo")

def test_HELlo(self):
self.assertEqual(self.HL.Hl[2], "HELlo", "HELlo")

def test_HELLo(self):
self.assertEqual(self.HL.Hl[3], "HELLo", "HELLo")

def test_HELLO(self):
self.assertEqual(self.HL.Hl[4], "HELLO", "HELLO")

def test_HelloType(self):
with self.assertRaises(TypeError):
"hello world".split(2)

def tearDown(self):
pass
if __name__=="__main__":
#以命令行接口
#main()
#创建一个测试集调用测试加载工具
suite = TestLoader().loadTestsFromTestCase(TestHello)
TextTestRunner(verbosity=2).run(suite)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: