- 日期及更新信息:2025 年 3 月 14 日更新了代码片段,包含导入并删除了一些未使用的内容,感谢 Andy!
- 关于测试的观点:是代码库最重要的资产,对于辅助服务如管理站点或命令行界面的测试,倾向于请求原谅多于请求许可,Django 的管理站点也一样,因其管理 DSL 较“魔法字符串”式,很多问题在被 CS 代理告知前不会被 CI 或 mypy 捕获。
示例代码:
- 定义了
StripeCustomer
模型和StripeCustomerAdmin
管理类。 - 实现了一个参数化测试
test_can_render_route
,用于确保每个管理视图都能渲染空状态。通过extract_routes
函数提取 Django 管理站点的路由,is_django_admin_route
函数判断是否为管理更改列表路由,然后使用pytest
的parametrize
对这些路由进行测试,确保登录后的超级用户访问这些路由时状态码为 200。
- 定义了
相关细节:
extract_routes
实现看起来复杂但借鉴自django-typescript-routes
和django-js-reverse
,使用了一些索引操作且运行良好一段时间。- 测试的 fixture 和
parametrize
假设使用pytest
,可轻松改写为使用subTest
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。