# 牧场管理 — 测试用例

> 依据：`牧场管理功能需求.md`、`牧场管理技术方案.md`  
> **接口 Base Path**：`/dataModel/pasture`；鉴权与若依一致（Cookie / Token）。

**通用前置**：具备本模块菜单与按钮权限的账号已登录；开发环境 `third-party.farming.mode=stub` 可使用 classpath 样例数据。**牧场类型**：`1` 个体、`2` 企业。

**界面（UI）测试**：**Playwright** + **Chromium**。

---

## 一、单元测试用例

| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试目的 | 预期结果 |
| --- | --- | --- | --- | --- | --- |
| ZCZX-MCGL-UT-001 | 同步规则 | farmType 解析 | 单元测试 | `1`/`2` 映射性质 | 解析正确；非数字返回 null |
| ZCZX-MCGL-UT-002 | 同步 Tx | 新增落库 | 单元测试 | 无 external_id 记录 | insert；`del_flag=0` |
| ZCZX-MCGL-UT-003 | 同步 Tx | 更新落库 | 单元测试 | 已有 external_id | update；保留 createTime |
| ZCZX-MCGL-UT-004 | 同步 Tx | 缺名称失败 | 单元测试 | farmName 空 | 计入 failMessages |
| ZCZX-MCGL-UT-005 | 同步服务 | 空列表 | 单元测试 | stub 空数组 | insert/update=0 |
| ZCZX-MCGL-UT-006 | 同步服务 | 并发拒绝 | 单元测试 | 重复点击 | `正在同步，请稍候` |
| ZCZX-MCGL-UT-007 | Service | 列表空安全 | 单元测试 | Mapper 返回 null | 空 List |
| ZCZX-MCGL-UT-008 | Mapper | 排序与删除过滤 | 单元测试 | XML 检查 | `del_flag=0`；`create_time desc` |

---

## 二、接口测试用例

| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试步骤 | 预期结果 |
| --- | --- | --- | --- | --- | --- |
| ZCZX-MCGL-API-001 | 列表 | 默认分页 | 接口测试 | `GET /list` | `rows`≤20 |
| ZCZX-MCGL-API-002 | 列表 | 关键字 | 接口测试 | `keyword=示范` | 名称模糊命中 |
| ZCZX-MCGL-API-003 | 列表 | 类型-个体 | 接口测试 | `farmType=1` | 均为个体 |
| ZCZX-MCGL-API-004 | 详情 | 全字段 | 接口测试 | `GET /{id}` | 含 introduction、county 等 |
| ZCZX-MCGL-API-005 | 同步 | stub 成功 | 接口测试 | `POST /sync` | `insertCount`+`updateCount`≥0 |
| ZCZX-MCGL-API-006 | 同步 | 进行中 | 接口测试 | 并发第二次 POST | `msg` 含正在同步 |
| ZCZX-MCGL-API-007 | 权限 | 无 sync 权限 | 接口测试 | 无权限账号 POST | 403 |

---

## 三、界面测试用例

| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试步骤 | 预期结果 |
| --- | --- | --- | --- | --- | --- |
| ZCZX-MCGL-UI-001 | 列表 | 默认加载 | UI | 进入菜单 | 表格或空态文案 |
| ZCZX-MCGL-UI-002 | 筛选 | 名称+性质 | UI | 输入关键字选性质搜索 | 列表刷新 |
| ZCZX-MCGL-UI-003 | 同步 | 按钮与结果 | UI | 点击同步 | 成功提示；列表刷新 |
| ZCZX-MCGL-UI-004 | 详情 | 查看弹窗 | UI | 点击查看 | 展示草稿全部字段 |
| ZCZX-MCGL-UI-005 | 权限 | 无同步按钮 | UI | 无 sync 权限账号 | 同步按钮不可见 |

---

## 四、修订说明

| 版本 | 说明 |
| --- | --- |
| 1.0 | 覆盖本地 CRUD、照片、区划校验 |
| 2.0 | 改为第三方同步；移除新增/修改/删除用例；增补同步相关用例 |
