You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.3 KiB
5.3 KiB
分镜资源命名逻辑测试更新
日期: 2026-02-12
类型: 测试更新
影响范围: 单元测试、集成测试
概述
更新了分镜资源(图片和视频)的单元测试和集成测试,以验证新增的自动命名逻辑和 name/description 字段功能。
变更内容
1. 单元测试更新
文件: server/tests/unit/services/test_storyboard_resource_service.py
图片测试
-
test_create_image_success:- 新增分镜信息 mock(
order_index、title) - 新增已有图片列表 mock(用于计算方案编号)
- 验证自动生成的名称格式:
005-开场镜头-方案03
- 新增分镜信息 mock(
-
test_create_image_with_custom_name(新增):- 测试使用自定义名称创建图片
- 验证不查询已有图片列表
- 验证使用用户提供的名称
-
test_create_image_deactivate_others:- 修复 mock 配置,添加分镜信息 mock
- 验证激活图片时取消其他图片的逻辑
视频测试
-
test_create_video_success:- 新增分镜信息 mock(
order_index、title) - 新增已有视频列表 mock(用于计算方案编号)
- 验证自动生成的名称格式:
010-结尾镜头-方案02
- 新增分镜信息 mock(
-
test_create_video_with_custom_name(新增):- 测试使用自定义名称创建视频
- 验证不查询已有视频列表
- 验证使用用户提供的名称
2. 集成测试更新
文件: server/tests/integration/test_storyboard_resource_api.py
图片 API 测试
-
test_create_storyboard_image_success:- 验证 API 返回的
name字段不为空 - 验证名称包含
-方案标识
- 验证 API 返回的
-
test_create_storyboard_image_with_custom_name(新增):- 测试使用自定义
name和description创建图片 - 验证 API 返回的字段值正确
- 测试使用自定义
视频 API 测试
-
test_create_storyboard_video_success:- 验证 API 返回的
name字段不为空 - 验证名称包含
-方案标识
- 验证 API 返回的
-
test_create_storyboard_video_with_custom_name(新增):- 测试使用自定义
name和description创建视频 - 验证 API 返回的字段值正确
- 测试使用自定义
测试覆盖
命名逻辑验证
✅ 自动生成名称格式正确(镜号-分镜名称-方案XX)
✅ 方案编号基于已有资源数量累计
✅ 图片和视频的方案编号独立计算
✅ 用户提供自定义名称时使用用户名称
✅ 自定义名称时不查询已有资源列表(性能优化)
API 响应验证
✅ 创建资源时返回 name 字段
✅ 创建资源时返回 description 字段
✅ 自动生成的名称符合预期格式
✅ 自定义名称正确保存和返回
测试结果
# 单元测试
$ docker exec jointo-server-app pytest tests/unit/services/test_storyboard_resource_service.py -v
============================== 18 passed in 0.31s ===============================
# 关键测试用例
✅ test_create_image_success - 自动生成名称
✅ test_create_image_with_custom_name - 自定义名称
✅ test_create_video_success - 自动生成名称
✅ test_create_video_with_custom_name - 自定义名称
# 集成测试
$ docker exec jointo-server-app pytest tests/integration/test_storyboard_resource_api.py::TestStoryboardResourceAPI::test_create_storyboard_image_success tests/integration/test_storyboard_resource_api.py::TestStoryboardResourceAPI::test_create_storyboard_image_with_custom_name -v
============================== 2 passed in 6.17s ===============================
$ docker exec jointo-server-app pytest tests/integration/test_storyboard_resource_api.py::TestStoryboardResourceAPI::test_create_storyboard_video_success tests/integration/test_storyboard_resource_api.py::TestStoryboardResourceAPI::test_create_storyboard_video_with_custom_name -v
============================== 2 passed in 5.75s ===============================
# API 测试验证
✅ test_create_storyboard_image_success - 自动生成名称(API 返回正确)
✅ test_create_storyboard_image_with_custom_name - 自定义名称(API 返回正确)
✅ test_create_storyboard_video_success - 自动生成名称(API 返回正确)
✅ test_create_storyboard_video_with_custom_name - 自定义名称(API 返回正确)
技术细节
Mock 配置
# 分镜信息 mock
mock_storyboard = MagicMock()
mock_storyboard.order_index = 5
mock_storyboard.title = "开场镜头"
# 已有资源列表 mock(用于计算方案编号)
existing_images = [MagicMock(), MagicMock()] # 2个已有图片
mock_repository.get_images_by_storyboard.return_value = existing_images
# 预期生成名称:005-开场镜头-方案03
测试断言
# 验证自动生成的名称
assert result.name == "005-开场镜头-方案03"
# 验证自定义名称
assert result.name == "我的自定义图片名称"
# 验证不查询已有资源(性能优化)
mock_repository.get_images_by_storyboard.assert_not_called()
相关文档
后续工作
- 运行集成测试验证 API 行为
- 前端集成测试(验证 UI 显示和交互)
- 性能测试(大量资源场景下的命名性能)