Python unittest小结
2013-11-20 16:14
393 查看
上周还上了test部分的内容,包括python unittest, django unittest,
java JUnit还有Android
Test的部分内容,这周开始对这些分别总结,其中有借鉴网上部分内容的,会在文中声明。
本文部分内容参考自:http://www.cnpythoner.com/post/303.html 感谢原作者的付出
python内部自带了一个单元测试的模块unittest,针对于在eclipse下开发python,它的基本使用方法如下:
1.import unittest
2.定义一个继承自unittest.TestCase的测试用例类
3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
4.定义测试用例,所有的测试函数名字必须以test开头。如:def
test_number(self)
5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
6.调用unittest.main()启动测试
7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则,在console输出(本文例子中情况):
..
----------------------------------------------------------------------
Ran 2 tests in 0.002s
OK
下面是unittest模块的常用方法:
assertEqual(a, b)
a == b
assertNotEqual(a, b)
a != b
assertTrue(x)
bool(x) is
True
assertFalse(x)
bool(x) is
False
assertIs(a, b)
a is b
2.7
assertIsNot(a, b)
a is not b
2.7
assertIsNone(x)
x is None
2.7
assertIsNotNone(x)
x is not
None
2.7
assertIn(a, b)
a in b
2.7
assertNotIn(a, b)
a not in b
2.7
assertIsInstance(a, b)
isinstance(a, b)
2.7
assertNotIsInstance(a, b)
not
isinstance(a, b)
2.7
也有其他的unittest方法,用于执行更具体的检查,如:
Method
Checks that
New in
assertAlmostEqual(a, b)
round(a-b,
7) == 0
assertNotAlmostEqual(a, b)
round(a-b,
7) != 0
assertGreater(a, b)
a
> b
2.7
assertGreaterEqual(a, b)
a
>= b
2.7
assertLess(a, b)
a
< b
2.7
assertLessEqual(a, b)
a
<= b
2.7
assertRegexpMatches(s, re)
regex.search(s)
2.7
assertNotRegexpMatches(s, re)
not
regex.search(s)
2.7
assertItemsEqual(a, b)
sorted(a) ==
sorted(b) and works with unhashable objs
2.7
assertDictContainsSubset(a, b)
all the
key/value pairs in a exist in b
2.7
assertMultiLineEqual(a, b)
strings
2.7
assertSequenceEqual(a, b)
sequences
2.7
assertListEqual(a, b)
lists
2.7
assertTupleEqual(a, b)
tuples
2.7
assertSetEqual(a, b)
sets or
frozensets
2.7
assertDictEqual(a, b)
dicts
2.7
assertMultiLineEqual(a, b)
strings
2.7
assertSequenceEqual(a, b)
sequences
2.7
assertListEqual(a, b)
lists
2.7
assertTupleEqual(a, b)
tuples
2.7
assertSetEqual(a, b)
sets or
frozensets
2.7
assertDictEqual(a, b)
dicts
2.7
附上自己写的一个超级简单小测试程序,做为参考:
#pourtest.py
def multiply(a, b):
return
a*b
#test.py
import unittest
from pourtest import multiply
class UnTest(unittest.TestCase):
def
setUp(self):
pass
def
test_number(self):
self.assertEqual(multiply(2,4), 8)
def
test_string(self):
self.assertEqual(multiply(3,'a'), 'aaa')
if __name__ == '__main__':
unittest.main()
另外一点需要注意的是,在写好测试单元后,在eclipse中需要Run as Python
Run而不是Python unit-test,这点大家需要留意一下。
So far so easy, so, end...:)
java JUnit还有Android
Test的部分内容,这周开始对这些分别总结,其中有借鉴网上部分内容的,会在文中声明。
本文部分内容参考自:http://www.cnpythoner.com/post/303.html 感谢原作者的付出
python内部自带了一个单元测试的模块unittest,针对于在eclipse下开发python,它的基本使用方法如下:
1.import unittest
2.定义一个继承自unittest.TestCase的测试用例类
3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
4.定义测试用例,所有的测试函数名字必须以test开头。如:def
test_number(self)
5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
6.调用unittest.main()启动测试
7.如果测试未通过,会输出相应的错误提示。如果测试全部通过则,在console输出(本文例子中情况):
..
----------------------------------------------------------------------
Ran 2 tests in 0.002s
OK
下面是unittest模块的常用方法:
assertEqual(a, b)
a == b
assertNotEqual(a, b)
a != b
assertTrue(x)
bool(x) is
True
assertFalse(x)
bool(x) is
False
assertIs(a, b)
a is b
2.7
assertIsNot(a, b)
a is not b
2.7
assertIsNone(x)
x is None
2.7
assertIsNotNone(x)
x is not
None
2.7
assertIn(a, b)
a in b
2.7
assertNotIn(a, b)
a not in b
2.7
assertIsInstance(a, b)
isinstance(a, b)
2.7
assertNotIsInstance(a, b)
not
isinstance(a, b)
2.7
也有其他的unittest方法,用于执行更具体的检查,如:
Method
Checks that
New in
assertAlmostEqual(a, b)
round(a-b,
7) == 0
assertNotAlmostEqual(a, b)
round(a-b,
7) != 0
assertGreater(a, b)
a
> b
2.7
assertGreaterEqual(a, b)
a
>= b
2.7
assertLess(a, b)
a
< b
2.7
assertLessEqual(a, b)
a
<= b
2.7
assertRegexpMatches(s, re)
regex.search(s)
2.7
assertNotRegexpMatches(s, re)
not
regex.search(s)
2.7
assertItemsEqual(a, b)
sorted(a) ==
sorted(b) and works with unhashable objs
2.7
assertDictContainsSubset(a, b)
all the
key/value pairs in a exist in b
2.7
assertMultiLineEqual(a, b)
strings
2.7
assertSequenceEqual(a, b)
sequences
2.7
assertListEqual(a, b)
lists
2.7
assertTupleEqual(a, b)
tuples
2.7
assertSetEqual(a, b)
sets or
frozensets
2.7
assertDictEqual(a, b)
dicts
2.7
assertMultiLineEqual(a, b)
strings
2.7
assertSequenceEqual(a, b)
sequences
2.7
assertListEqual(a, b)
lists
2.7
assertTupleEqual(a, b)
tuples
2.7
assertSetEqual(a, b)
sets or
frozensets
2.7
assertDictEqual(a, b)
dicts
2.7
附上自己写的一个超级简单小测试程序,做为参考:
#pourtest.py
def multiply(a, b):
return
a*b
#test.py
import unittest
from pourtest import multiply
class UnTest(unittest.TestCase):
def
setUp(self):
pass
def
test_number(self):
self.assertEqual(multiply(2,4), 8)
def
test_string(self):
self.assertEqual(multiply(3,'a'), 'aaa')
if __name__ == '__main__':
unittest.main()
另外一点需要注意的是,在写好测试单元后,在eclipse中需要Run as Python
Run而不是Python unit-test,这点大家需要留意一下。
So far so easy, so, end...:)
相关文章推荐
- 转--Python 错误和异常小结
- python unittest框架的使用&解析
- python中的单元测试pyUnit & what is unit test and why
- python unittest小结(一)
- python unittest 没有执行 if __name__=='__main__'
- HP&nbsp;QuikeTest&nbsp;Professional&nbsp;10安装
- Python接口测试之unittest框架
- Persistence&nbsp;Unit中的类集合
- python 单元测试的模块 pyUnit(unittest),mock与Python测试
- python-unittest(1)
- 老李分享:开发python的unittest结果输出样式
- 关于test&nbsp;-e的一点说明
- python unitTest使用框架
- 【原创】 python django…
- 【原创】Python 反射 ex…
- 【原创】python-DNS 缓存 配置
- Python单元测试(doctest和unittest)
- Python 天天美味(37) - 让python的unittest像gtest一样输出
- Python Unittest自动化单元测试框架详解
- python进阶之Unittest用法(2)