Python Essential Reference 4th – 第11章 – 读书笔记

本章主要介绍测试、调试和性能调优

1、C、Java等语言,都是预编译类型,编译器会阻止大部分的错误。而对于Python来说,仅当运行时才能知道错误。因此,发现错误的过程更麻烦一些。

2、函数、类等第一行常用三个引号的字符串来写注释docstring,如下:

def split(line,...):
   """
    Split....

    >>>split(...)
    >>>[...]
    """

如上所示,doc中经常包含python交互shell的代码,用做测试用例。
我们可以用docstring中的测试用例来做单元测试。

[python]
import split #被测试模块
import doctest
#根据docstring,返回unittest的通过和失败数量
nfail, nsuccess = doctest.testmod(split)
[/python]

3、上面用docstring来做测试的方法确实有点山寨,而且效率比较低,python也有unittest模块,其实和JUnit非常类似。

[python]
import split #被测试模块
import unittest
class TestSplit(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    def testsimplestring(self):
        r = split.split("...")
        self.assertEqual(r,[......])
[/python]

可以看到,和JUnit非常类似。其中assert还可以有:
t.assert
t.assertAlmostEqual(x,y,places) #在一定精度范围内匹配
t.assertRaises(exc,callable...)
等很多,需要时候看文档吧。

4、

2 thoughts on “Python Essential Reference 4th – 第11章 – 读书笔记

Leave a Reply

Your email address will not be published. Required fields are marked *