趋近智
if 语句for 循环with 自动关闭文件from ... importself 参数说明finally 块:清理操作既然您已经完成了构建简单命令行应用程序的过程,那么必要的下一步就是验证它是否确实按预期运行。编写代码只是开发过程的一部分;通过测试确保其正确性同样重要,即使是像您刚刚构建的这样的小项目也不例外。可以将测试视为一次质量检查,一种确保应用程序行为可预测并产生正确结果的方式。
本质上,测试能帮助您在代码中找到问题,这些问题通常被称为bug。通过使用不同的输入运行应用程序,您可以查看它是否正确处理了各种情况。例如,对于命令行工具,这可能意味着:
及早发现错误,特别是在这些基础阶段,会比在更复杂的程序中后期发现并修复它们容易得多。
对于您当前阶段正在构建的应用程序,最直接的测试方式是手动测试。这包括您自己运行程序,并像用户一样与其交互。您将提供不同的输入并观察输出,然后将它们与您预期会发生的结果进行比较。
为了有效测试,您需要一个计划。与其随意输入,不如思考特定的情景,或称之为测试用例,这会很有帮助。一个测试用例通常包含:
考虑为不同类别的输入创建测试用例:
典型用法(“正常路径”): 测试常见、预期的输入。如果是一个计算器,测试使用有效数字进行简单的加法、减法等。如果是一个任务列表,测试添加任务、查看列表,以及删除任务。这些测试确认核心功能正常运行。
2 + 3,预期输出 5add Buy milk,预期输出 任务 'Buy milk' 已添加。 (或类似的确认信息)边界条件(极端情况): 测试处于可接受范围极限的输入。允许的最大或最小数字会发生什么?如果相关,空输入又会怎样?
0。add(不带任务描述),输入 view 当列表为空时。无效输入(错误情况): 测试应用程序不应接受或应优雅处理的输入。如果用户在预期为数字的地方输入文本会怎样?如果他们输入了未知命令又会怎样?
two + three,输入 5 / 0(除以零)。remov Buy milk(命令拼写错误),输入 fly to the moon 这样无意义的命令。执行您的计划:
假设您的命令行工具是一个基本计算器,接受 add 5 3、sub 10 2 等输入。
| 测试用例描述 | 输入 | 预期输出 | 通过/失败 | 备注 |
|---|---|---|---|---|
| 基本加法 | add 5 3 |
8 |
||
| 基本减法 | sub 10 2 |
8 |
||
| 乘法 | mul 6 7 |
42 |
||
| 除法 | div 10 5 |
2 (或 2.0 取决于实现) |
||
| 除以零 | div 8 0 |
错误信息(例如,“不能除以零”) | 应用程序不应崩溃 | |
| 无效命令 | power 2 3 |
错误信息(例如,“未知命令”) | ||
| 非数字参数 | add five 3 |
错误信息(例如,“无效数字”) | ||
| 参数数量错误 | add 5 |
错误信息(例如,“参数不正确”) | ||
| 空输入 | Enter | 用法帮助或提示 | 取决于设计 |
如果测试失败(实际结果与预期结果不符),您就找到了一个bug!不要气馁;这是编程的正常组成部分。下一步是调试:
print() 语句来查看变量在不同位置的值。手动测试是必要的,尤其是在您刚开始时。然而,随着应用程序变得越来越大、越来越复杂,每次小改动后都手动测试所有功能会变得耗时且容易出错。
在更高级的开发中,程序员会使用自动化测试。这包括编写更多代码(测试代码),这些代码会自动使用预定义的输入运行应用程序代码的一部分,并检查输出是否正确。Python 有内置库,如 unittest,以及流行的第三方库,如 pytest,专门用于此目的。虽然自动化测试不在本入门课程的讨论范围之内,但它是您在继续编程学习时会遇到的一个重要主题。
目前,认真对您的命令行工具进行手动测试将大幅提升其质量,并加深您对所学各个部分如何整合的理解。
这部分内容有帮助吗?
unittest - Unit testing framework, Python Software Foundation, 2023 (Python Software Foundation) - Python 内置单元测试框架的官方文档,提供了超越手动方法的自动化测试技术详情。© 2026 ApX Machine Learning用心打造