使用奇怪的测试来捕获隐性知识

主要观点:在成熟复杂的代码库(如Buttondown)中高效快速工作需要大量隐性知识,但文档往往不能真正解决问题。一种有用的方法是在测试中捕捉步骤,如添加新的 Django 模块到代码库时需添加到多个不同位置,可通过测试来确保;对于维护单独的enums.json文件以记录枚举值的情况,也可类似处理。这种测试驱动的不变量是自我记录的,能包含代码指针、技术解释和修复方法。

关键信息:

  • 代码库工作需隐性知识,文档虽重要但不能解决确保人人能安全快速做事的问题。
  • 以添加 Django 模块为例,需添加到pytest.inipyproject.tomlmodules.txt等多个位置,可通过测试来确保。
  • 对于维护enums.json文件,通过测试确保枚举值的完整性,如在测试中遍历枚举名和枚举值进行检查。
  • 测试驱动的不变量自我记录,能包含多种信息,如“添加新枚举值”这样的任务可通过测试来记录和解决。

重要细节:

  • 给出了具体的测试代码示例,如pytest_generate_tests函数用于参数化测试,test_module_is_present_in_pytest函数用于检查模块是否在相关文件中。
  • 对于enums.json文件的测试示例,通过遍历枚举名和枚举值进行检查,同时处理已知缺失的枚举值对。
  • 强调在审查 PR 时思考“测试能否捕捉到这个”,并将测试定义为“练习代码库的脚本”。
阅读 10
0 条评论