单元测试方案(非IDE插件)

阶段

SpringBoot Java

Python

前端 TS/JS

扫描业务源码所需安装依赖(第三方SDK依赖,非业务)

JavaParser(辅助 pom 做参考)

pipreqs(辅助 requirements.txt做参考)

ts-morph(辅助package.json/yarn.lock/pnpm-lock.yaml/package-lock.json做参考)

生成第三方SDK桩

JavaPoet+ASM-OW2

mypy stubgen

dts-gen+ts-morph

生成桩的目录结构

镜像包目录,每个桩类独立文件,最后统一打包 stub.jar

镜像目录结构的多文件桩

stubs/

├── torch/

│   └── __init__.py

└── company_sdk/

    └── __init__.py

 

single-stub.d.ts(单文件)

业务代码扫描

EvoSuite

Pynguin

test-gen-js

Mock

EvoSuite支持基于Mockito

可mock硬件 / GPU 相关/数据库类/消息队列/网络请求/云 SDK

网络请求/定时器

测试用例生成

EvoSuite+JUnit5

Pynguin+pytest

test-gen-js+Jest(可生成TS/JS)

Mock+用例是否支持合并

支持合并在同一个 文件

无需

无需

断言

EvoSuite(自身带)

Pynguin(自身带,可选SIMPLE或MUTATION_ANALYSIS)

test-gen-js(自身带基础断言)

覆盖面

Services层:
center-core\center-core-server\src\main\java\cn\designorder\center\core\server\service

每个py文件

每个ts/js源码文件

用例生成目录结构

src/

├── main/java/com/xxx/project/

│   ├── service/

│   ├── controller/

│   └── dto/

└── test/java/com/xxx/project/ # 和main包结构完全镜像

    ├── service/                     # UserService → UserServiceTest

    ├── controller/

    └── dto/

 

project/

├── src/

│   ├── service.py

│   └── utils.py

└── tests/

    ├── conftest.py #全局fixture、mock通用配置

    ├── unit/# ✅单元测试目录,Pynguin生成的用例全部输出在这里

    │   ├── test_service.py

    │   └── test_utils.py

    └── integration/# 集成测试单独隔离

 

src/

├── service/

└── components/

tests/

└── unit/

    ├── service/

    └── components/

 

posted @ 2026-10-19 19:03  Next十年  阅读(3)  评论(0)    收藏  举报