1
0
forked from erp-dev/erp
Files
erpnew/api_man_test_report.md

5.0 KiB

api_man 模块 API 测试报告

测试执行时间: 2025-12-23
测试框架: Django TestCase + DRF APIClient
数据库: PostgreSQL (test_flower)

测试摘要

  • 总测试数: 21
  • 通过: 21
  • 失败: 0
  • 执行时间: ~2.7 秒
  • 测试状态: 全部通过

测试详情

1. WarehouseAPITestCase (仓库 API 测试)

测试类: api_man.tests.WarehouseAPITestCase

测试方法 描述 状态
test_create_warehouse_with_default_type 测试创建仓库时使用默认类型 通过
test_create_warehouse_with_whole_type 测试创建整仓 通过
test_create_warehouse_with_scattered_type 测试创建散仓 通过
test_list_warehouses_includes_type 测试列表接口返回类型字段 通过
test_update_warehouse_type 测试更新仓库类型 通过
test_retrieve_warehouse_includes_type 测试检索单个仓库时包含类型字段 通过

测试覆盖:

  • 创建仓库(默认类型、整仓、散仓)
  • 列表查询(包含类型字段)
  • 更新仓库类型
  • 单个仓库检索

2. EmployeeTypeAPITestCase (员工职位类型 API 测试)

测试类: api_man.tests.EmployeeTypeAPITestCase

测试方法 描述 状态
test_create_employee_type 测试创建职位类型 通过
test_list_employee_types 测试列出所有职位类型 通过
test_update_employee_type 测试更新职位类型 通过
test_delete_employee_type 测试删除职位类型 通过

测试覆盖:

  • CRUD 操作(创建、读取、更新、删除)
  • 列表查询

3. EmployeeAPITestCase (员工 API 测试)

测试类: api_man.tests.EmployeeAPITestCase

测试方法 描述 状态
test_create_employee_with_position 测试创建带职位的员工 通过
test_create_employee_without_position 测试创建不带职位的员工 通过
test_list_employees_includes_job_type 测试列表接口包含 job_type 字段 通过
test_update_employee_position 测试更新员工职位 通过
test_job_type_is_read_only 测试 job_type 是只读字段 通过

测试覆盖:

  • 创建员工(带职位/不带职位)
  • 列表查询(包含 job_type 兼容字段)
  • 更新员工职位
  • job_type 只读验证(兼容性字段)

4. UserProfileAPITestCase (用户资料 API 测试)

测试类: api_man.tests.UserProfileAPITestCase

测试方法 描述 状态
test_create_user_profile 测试创建用户资料 通过
test_list_user_profiles 测试列出所有用户资料 通过
test_retrieve_user_profile 测试检索单个用户资料 通过
test_update_user_profile 测试更新用户资料 通过
test_delete_user_profile 测试删除用户资料 通过
test_user_profile_filter_by_merchant 测试用户资料按商户过滤 通过

测试覆盖:

  • CRUD 操作(创建、读取、更新、删除)
  • 列表查询
  • 单个资料检索(包含嵌套用户对象)
  • 按商户过滤(多租户隔离)

测试 API 端点

仓库 API

  • POST /api/backend/warehouses/ - 创建仓库
  • GET /api/backend/warehouses/ - 列表查询
  • GET /api/backend/warehouses/{id}/ - 单个查询
  • PATCH /api/backend/warehouses/{id}/ - 更新仓库

员工职位类型 API

  • POST /api/backend/employee-types/ - 创建职位类型
  • GET /api/backend/employee-types/ - 列表查询
  • PATCH /api/backend/employee-types/{id}/ - 更新职位类型
  • DELETE /api/backend/employee-types/{id}/ - 删除职位类型

员工 API

  • POST /api/backend/employees/ - 创建员工
  • GET /api/backend/employees/ - 列表查询
  • PATCH /api/backend/employees/{id}/ - 更新员工

用户资料 API

  • POST /api/backend/user-profiles/ - 创建用户资料
  • GET /api/backend/user-profiles/ - 列表查询
  • GET /api/backend/user-profiles/{id}/ - 单个查询
  • PATCH /api/backend/user-profiles/{id}/ - 更新用户资料
  • DELETE /api/backend/user-profiles/{id}/ - 删除用户资料

失败测试

无失败测试

所有 21 个测试用例均通过,未发现任何问题。


运行测试命令

# 使用环境变量配置数据库连接
DB_HOST=localhost DB_PORT=5432 DB_NAME=flower DB_USER=postgres DB_PASSWORD=postgres \
  uv run python manage.py test api_man --verbosity=2 --keepdb

注意事项

  1. 数据库要求: 测试需要 PostgreSQL 数据库连接
  2. 测试数据库: Django 会自动创建 test_flower 数据库
  3. 认证: 测试使用 APIClient.force_authenticate() 进行身份验证
  4. 数据隔离: 每个测试用例在事务中运行,测试结束后自动回滚

报告生成时间: 2025-12-23
测试执行环境: Python 3.14, Django 5.2.8, DRF