python测试实现方法

1)doctest 使用doctest是一种类似于命令行尝试的方式,用法很简单,如下

代码如下:

def f(n): “”” >>> f(1) 1 >>> f(2) 2 “”” print(n) if __name__ == ‘__main__’: import doctest doctest.testmod()

应该来说是足够简单了,另外还有一种方式doctest.testfile(filename),就是把命令行的方式放在文件里进行测试。 2)unittest unittest历史悠久,最早可以追溯到上世纪七八十年代了,c++,java里也都有类似的实现,python里的实现很简单。 unittest在python里主要的实现方式是testcase,testsuite。用法还是例子起步。

代码如下:

from widget import widget import unittest # 执行测试的类 class widgettestcase(unittest.testcase): def setup(self): self.widget = widget() def teardown(self): self.widget.dispose() self.widget = none def testsize(self): self.assertequal(self.widget.getsize(), (40, 40)) def testresize(self): self.widget.resize(100, 100) self.assertequal(self.widget.getsize(), (100, 100)) # 测试 if __name__ == “__main__”: # 构造测试集 suite = unittest.testsuite() suite.addtest(widgettestcase(“testsize”)) suite.addtest(widgettestcase(“testresize”)) # 执行测试 runner = unittest.texttestrunner() runner.run(suite)

简单的说,1>构造testcase(测试用例),其中的setup和teardown负责预处理和善后工作。2>构造测试集,添加用例3>执行测试需要说明的是测试方法,在python中有n多测试函数,主要的有: testcase.assert_(expr[, msg]) testcase.failunless(expr[, msg]) testcase.asserttrue(expr[, msg]) testcase.assertequal(first, second[, msg]) testcase.failunlessequal(first, second[, msg]) testcase.assertnotequal(first, second[, msg]) testcase.failifequal(first, second[, msg]) testcase.assertalmostequal(first, second[, places[, msg]]) testcase.failunlessalmostequal(first, second[, places[, msg]]) testcase.assertnotalmostequal(first, second[, places[, msg]]) testcase.failifalmostequal(first, second[, places[, msg]]) testcase.assertraises(exception, callable, …) testcase.failunlessraises(exception, callable, …) testcase.failif(expr[, msg]) testcase.assertfalse(expr[, msg]) testcase.fail([msg])

Posted in 未分类

发表评论