测试函数名须以test_开头并用下划线连接完整动宾短语如test_calculate_total_returns_zero_for_empty_cart参数化用pytest.mark.parametrize替代重复函数断言需具体明确fixture应以名词命名体现被构建对象而非构建动作。测试函数名必须以 test_ 开头且用下划线分隔的完整动宾短语pytest 只自动收集名字匹配 test_* 或 *_test 的函数但后者不推荐——容易和 fixture 混淆。真正起自解释作用的是命名本身它得让人一眼看出「在什么条件下对什么操作预期什么结果」。常见错误是写成 test_add、test_validation 这类模糊命名运行失败时还得翻代码才能理解意图。正确做法是像自然语言一样描述行为test_calculate_total_returns_zero_for_empty_carttest_parse_json_raises_value_error_on_malformed_inputtest_user_login_fails_with_incorrect_password注意不用加“should”或“does”pytest 不是 BDD 框架也不缩写比如别用 calc 代替 calculate可读性优先于字符数。用 pytest.mark.parametrize 替代重复测试函数当多个相似场景只差输入/输出时硬写一堆 test_* 函数不仅冗余还让命名越来越长比如 test_add_positive_numbers、test_add_negative_numbers……反而稀释了重点。立即学习“Python免费学习笔记深入”用 pytest.mark.parametrize 把差异点抽出来主函数名聚焦在核心行为上def test_calculate_discount_applies_correctly(): pass然后用参数化覆盖各种边界输入是 None 或空字符串 → 应该抛 TypeError折扣率 100 → 应该抛 ValueError金额为负数 → 应该返回原值或按业务规则处理这样既保持函数名简洁有力又让每个测试用例的意图在参数里一目了然。别把逻辑塞进函数名里那是参数该干的事。 Tellers AI Tellers是一款自动视频编辑工具可以将文本、文章或故事转换为视频。