Python 如何指定和强制执行界面规范
首先让我们看看什么是界面规范。界面规范是由诸如C++和Java之类的编程语言提供的模块的接口规范。它描述了模块的方法和函数的原型。
abc模块
abc模块在Python 2.6中引入,用于定义抽象基类(ABCs)。使用isinstance()和issubclass()来检查一个实例或类是否实现了特定的抽象基类。通过这种方式,collections.abc模块定义了一组有用的ABCs,如Iterable、Container和MutableMapping。
collections模块有一些从ABCs派生的类。collections.abc子模块中有一些ABCs,可用于测试一个类或实例是否提供了特定的接口。
通过Python中适当的测试规则可以实现界面规范带来的回报,
测试套件
对于一个模块来说,一个良好的测试套件既能提供回归测试,又能作为模块接口规范和一组示例。许多Python模块可以作为脚本来运行,以提供一个简单的自测试。
存根仿真
即使使用复杂的外部接口的模块,通常也可以使用对外部接口的简单”Pseudo”仿真来进行隔离测试。
使用doctest和unittest模块创建测试套件
可以使用doctest和unittest模块或第三方测试框架来构建详尽的测试套件,以测试模块中的每一行代码。
doctest模块搜索看起来像Python交互会话的文本片段,然后执行这些会话以验证它们的运行结果与显示的一样。
unittest模块支持测试自动化,用于测试的设置和关闭代码的共享,将测试聚合成集合,以及测试与报告框架的独立性。
构建大型复杂应用程序
适当的测试纪律可以帮助构建Python中的大型复杂应用程序,同时也具有界面规范。
测试驱动开发
编写测试套件非常有帮助,您可能希望设计您的代码以便易于测试。一种越来越流行的技术,即测试驱动开发,在编写任何实际代码之前,首先编写部分测试套件。
极客笔记