如何在 Python 中指定和强制执行接口规范?


让我们首先了解什么是接口规范。接口规范是模块的接口规范,由 C++ 和 Java 等编程语言提供。它描述了模块的方法和函数的原型。

abc 模块

abc 模块在 Python 2.6 中引入,用于定义抽象基类 (ABC)。使用 isinstance() 和 issubclass() 检查实例或类是否实现了特定的抽象基类。此外,collections.abc 模块定义了一组有用的 ABC,例如 Iterable、Container 和 MutableMapping。

collections 模块包含从 ABC 派生的类。collections.abc 子模块包含一些可以用来测试类或实例是否提供特定接口的 ABC。

通过 Python 中合适的测试规范可以获得接口规范的好处 -

测试套件

模块的良好测试套件既可以提供回归测试,也可以充当模块接口规范和示例集。许多 Python 模块可以作为脚本运行,以提供简单的自检。

存根模拟

即使是使用复杂外部接口的模块,也可以使用外部接口的简单“存根”模拟在隔离状态下进行测试。

使用 doctest 和 unittest 模块创建测试套件

可以使用 doctest 和 unittest 模块或第三方测试框架构建详尽的测试套件,以执行模块中的每一行代码。

doctest 模块搜索看起来像交互式 Python 会话的文本片段,然后执行这些会话以验证它们的工作方式与显示的完全一致。

unittest 模块支持测试自动化、共享测试的设置和关闭代码、将测试聚合到集合中以及测试与报告框架的独立性。

构建大型复杂应用程序

合适的测试规范可以帮助构建 Python 中的大型复杂应用程序,就像拥有接口规范一样。

测试驱动开发

编写测试套件非常有用,您可能希望设计您的代码使其易于测试。一种越来越流行的技术,测试驱动开发,要求您首先编写测试套件的一部分,然后再编写任何实际代码。

更新于: 2022年9月20日

116 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告