单元测试方案(非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层: |
每个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/
|

浙公网安备 33010602011771号