你怎么测 Spring 兼容性:先定行为,再拿去测移植版
来源:dev.to — 2026-10-19
📋 概述
Codename One 的后端并不兼容 Spring,只是用相似的语法方便迁移;熟悉的注解不能证明移植后的应用行为一致,测试才能。作者给的做法很干净:先在原 Spring 应用里写行为测试,把客户端依赖的契约固定下来并跑绿,再把这些断言原样带到 Codename One 侧,只换框架导入与测试注解,请求输入与期望结果一个字不改。兼容性在这里的定义是「你的应用行为在迁移后存活」,而不是「Codename One 实现了 Spring 框架」。
🔑 核心要点
- 除了成功响应,还要测校验错误、记录不存在、拒绝访问;写接口要额外验证落库状态。
- @BackendTest 启动模块应用并注入测试字段,MockMvc 在进程内穿过路由、会话、作用域 bean 与错误处理。
- 同一套断言要在 JVM 和编译后的原生构建上都跑,才算把两层都覆盖到。
- 为了让移植版通过而改断言,恰好藏掉了你本来想发现的差异。
💡 金句
“Changing an assertion merely to accept the port's output hides the difference you were trying to detect.”
译:为了让移植版的输出通过而修改断言,恰好藏掉了你本来要发现的差异。
← 返回 dev.to 首页