徐昊 · TDD 项目实战 70 讲
徐昊
Thoughtworks 中国区 CTO
18159 人已学习
新⼈⾸单¥98
登录后,你可以任选4讲全文学习
课程目录
已完结/共 88 讲
实战项目二|RESTful开发框架:依赖注入容器 (24讲)
实战项目三|RESTful Web Services (44讲)
徐昊 · TDD 项目实战 70 讲
15
15
1.0x
00:00/00:00
登录|注册

56|RESTful Web Services(20):为什么要通过测试的方法来驱动出代码结构?

你好,我是徐昊。今天我们继续使用 TDD 的方式实现 RESTful Web Services。

回顾架构愿景与任务列表

目前我们已经实现了 ResourceRouter,和 UriTemplate 整体的架构愿景如下:
接下来要进入 RootResource/Resource 和 ResourceMethod 的开发。目前未经细化的任务列表如下:
Resource/RootResource/ResourceMethod
在处理请求派分时,可以支持多级子资源(Sub-Resource)
在处理请求派分时,可以根据客户端提供的超媒体类型,选择对应的资源方法(Resource Method)
在处理请求派分时,可以根据客户端提供的 Http 方法,选择对应的资源方法
资源方法可以返回 Java 对象,由 Runtime 自行推断正确的返回状态
资源方法可以不明确指定返回的超媒体类型,由 Runtime 自行推断,比如,资源方法标注了 Produces 标注,那么就使用标注提供的超媒体类型等
资源方法可按找期望的类型,访问 Http 请求的内容
资源对象和资源方法可接受环境组件的注入
让我们细化一下任务列表。首先关注在请求派分的 Uri 匹配部分,暂时忽略其他部分:
Resource/RootResource/ResourceMethod
从 Path 标注中获取 UriTemplate
如不存在 Path 标注,则抛出异常
在处理请求派分时,可以根据客户端提供的 Http 方法,选择对应的资源方法
当请求与资源方法的 Uri 模版一致,且 Http 方法一致时,派分到该方法
没有资源方法于请求的 Uri 和 Http 方法一致时,返回 404
在处理请求派分时,可以支持多级子资源
当没有资源方法可以匹配请求时,选择最优匹配 SubResourceLocater,通过它继续进行派分
如果 SubResourceLocator 也无法找到满足的请求时,返回 404
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了使用TDD的方式实现RESTful Web Services的过程。作者首先回顾了架构愿景和任务列表,接着细化了任务列表,重点关注了请求派分的Uri匹配部分。在视频演示中,作者展示了如何增加新的测试案例。整体来看,本文强调了通过测试的方法来驱动出代码结构的重要性,以及在实现RESTful Web Services时需要关注的细节和技术要点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《徐昊 · TDD 项目实战 70 讲》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • aoe
    置顶
    第一次听说“三角法”,搜索了一下,分享一下我的理解: 三角法 = happy path + sad path 参考资料: TDD笔记3 三角测量Triangulation https://blog.csdn.net/rockieyungn/article/details/83288313 《Professional Test-Driven Development with C#: Developing Real World Applications with TDD》 https://www.oreilly.com/library/view/professional-test-driven-development/9780470643204/ch007-sec010.html
    2022-07-23
  • 忘川
    - 三角法 - 我理解是基于 两条线相交 只有一个点 能同时在两条线上 也就是同事满足两个测试用例 - 三角法和TDD的关系 - 刚开始 我们有N种方法 可以满足第一个或者前几个测试用例 然后随着测试用例的不断增加 也就是线的增加 那么能同时满足的点 会越来越少 - 通过不断新增的测试 给生产代码划定更多的边界 更小的空间 然后在狭小的空间内 驱动出代码结构 这也是我理解的tdd里面的驱动
    2023-01-09归属地:上海
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部