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)
assertNotEqual(a, b)
assertTrue(x)
assertFalse(x)
assertIs(a, b)
assertIsNot(a, b)
assertIsNone(x)
assertIsNotNone(x)
assertIn(a, b)
assertNotIn(a, b)
assertIsInstance(a, b)
assertNotIsInstance(a, b)
也有其他的unittest方法,用于执行更具体的检查,如:
Method
assertAlmostEqual(a, b)
assertNotAlmostEqual(a, b)
assertGreater(a, b)
assertGreaterEqual(a, b)
assertLess(a, b)
assertLessEqual(a, b)
assertRegexpMatches(s, re)
assertNotRegexpMatches(s, re)
assertItemsEqual(a, b)
assertDictContainsSubset
assertMultiLineEqual(a, b)
assertSequenceEqual(a, b)
assertListEqual(a, b)
assertTupleEqual(a, b)
assertSetEqual(a, b)
assertDictEqual(a, b)
assertMultiLineEqual(a, b)
assertSequenceEqual(a, b)
assertListEqual(a, b)
assertTupleEqual(a, b)
assertSetEqual(a, b)
assertDictEqual(a, b)
附上自己写的一个超级简单小测试程序,做为参考:
#pourtest.py
def multiply(a, b):
#test.py
import unittest
from pourtest import multiply
class UnTest(unittest.TestCase):
if __name__ == '__main__':
另外一点需要注意的是,在写好测试单元后,在eclipse中需要Run as Python Run而不是Python unit-test,这点大家需要留意一下。
So far so easy, so, end...:)