26. 开发工具¶
本章中描述的各模块可帮你编写 Python 程序。例如,pydoc
模块接受一个模块并根据该模块的内容来生成文档。doctest
和 unittest
这两个模块包含了用于编写单元测试的框架,并可用于自动测试所编写的代码,验证预期的输出是否产生。2to3 程序能够将 Python 2.x 源代码翻译成有效的 Python 3.x 源代码。
本章中描述的模块列表是:
- 26.1.
typing
— 类型标注支持 - 26.2.
pydoc
— Documentation generator and online help system - 26.3.
doctest
— Test interactive Python examples - 26.4.
unittest
— Unit testing framework- 26.4.1. Basic example
- 26.4.2. Command-Line Interface
- 26.4.3. Test Discovery
- 26.4.4. Organizing test code
- 26.4.5. Re-using old test code
- 26.4.6. Skipping tests and expected failures
- 26.4.7. Distinguishing test iterations using subtests
- 26.4.8. Classes and functions
- 26.4.9. Class and Module Fixtures
- 26.4.10. Signal Handling
- 26.5.
unittest.mock
— mock object library - 26.6.
unittest.mock
— getting started- 26.6.1. Using Mock
- 26.6.1.1. Mock Patching Methods
- 26.6.1.2. Mock for Method Calls on an Object
- 26.6.1.3. Mocking Classes
- 26.6.1.4. Naming your mocks
- 26.6.1.5. Tracking all Calls
- 26.6.1.6. Setting Return Values and Attributes
- 26.6.1.7. Raising exceptions with mocks
- 26.6.1.8. Side effect functions and iterables
- 26.6.1.9. Creating a Mock from an Existing Object
- 26.6.2. Patch Decorators
- 26.6.3. Further Examples
- 26.6.3.1. Mocking chained calls
- 26.6.3.2. Partial mocking
- 26.6.3.3. Mocking a Generator Method
- 26.6.3.4. Applying the same patch to every test method
- 26.6.3.5. Mocking Unbound Methods
- 26.6.3.6. Checking multiple calls with mock
- 26.6.3.7. Coping with mutable arguments
- 26.6.3.8. Nesting Patches
- 26.6.3.9. Mocking a dictionary with MagicMock
- 26.6.3.10. Mock subclasses and their attributes
- 26.6.3.11. Mocking imports with patch.dict
- 26.6.3.12. Tracking order of calls and less verbose call assertions
- 26.6.3.13. More complex argument matching
- 26.6.1. Using Mock
- 26.7. 2to3 - 自动将 Python 2 代码转为 Python 3 代码
- 26.8.
test
— Regression tests package for Python - 26.9.
test.support
— Utilities for the Python test suite