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

44|RESTful Web Services(8):如何在现有代码的基础上构造测试?

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

回顾架构愿景与任务列表

目前我们的架构愿景如下:
任务列表为:
ResourceServlet
将请求派分给对应的资源(Resource),并根据返回的状态、超媒体类型、内容,响应 Http 请求
使用 OutboundResponse 的 status 作为 Http Response 的状态
使用 OutboundResponse 的 headers 作为 Http Response 的 Http Headers
通过 MessageBodyWriter 将 OutboundResponse 的 GenericEntity 写回为 Body
如果找不到对应的 MessageBodyWriter,则返回 500 族错误
如果找不到对应的 HeaderDelegate,则返回 500 族错误
如果找不到对应的 ExceptionMapper,则返回 500 族错误
如果 entity 为空,则忽略 body
当资源方法抛出异常时,根据异常响应 Http 请求
如果抛出 WebApplicationException,且 response 不为 null,则使用 response 响应 Http
如果抛出的不是 WebApplicationException,则通过异常的具体类型查找 ExceptionMapper,生产 response 响应 Http 请求
当其他组件抛出异常时,根据异常响应 Http 请求
调用 ExceptionMapper 时
调用 HeaderDelegate 时
调用 MessageBodyWriter 时
通过 Providers 查找 ExceptionMapper 时
通过 Providers 查找 MessageBodyWriter 时
通过 RuntimeDelegate 查找 HeaderDelegate 时
RuntimeDelegate
为 MediaType 提供 HeaderDelegate
为 CacheControl 提供 HeaderDelegate
为 Cookie 提供 HeaderDelegates
为 EntityTag 提供 HeaderDelegate
为 Link 提供 HeaderDelegate
为 NewCookie 提供 HeaderDelegate
为 Date 提供 HeaderDelegate
提供 OutboundResponseBuilder
OutboundResponseBuilder
OutboundResponse
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何在现有代码的基础上构造测试,作者通过使用TDD的方式实现RESTful Web Services。文章首先回顾了架构愿景与任务列表,列举了任务列表中需要完成的功能。接着展示了ResourceServlet的代码实现,包括如何将请求派发给对应的资源、处理异常、以及如何响应Http请求等。作者还提出了两个思考题,分别是对测试代码进行重构和分享相关知识书单和项目代码。 文章的亮点在于通过具体的代码实现和任务列表,帮助读者了解了RESTful Web Services的实现细节,尤其是在处理异常和响应Http请求方面。读者可以通过作者提出的思考题,进一步加深对文章内容的理解,并在实践中提升学习效果。整体而言,本文适合对RESTful Web Services感兴趣的技术人员阅读,能够帮助他们更好地理解和实践相关知识。

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

全部留言(3)

  • 最新
  • 精选
  • aoe
    @TestFactory + 标签 + 反射刷新了我对自动化测试认知!

    编辑回复: 哈哈哈徐老师很多操作都刷新了我的认知!

    2022-07-02
    1
  • Luke
    踩了个坑。如果测试时遇到 StackOverflowError 的,看看 stub 的 OutboundResponse 是否都是默认值。
    2022-08-26归属地:北京
    1
  • 枫中的刀剑
    看老师重构代码是真的舒服,信手拈来,一气呵成。 动态测试配合函数式还能这么用,学到了。
    2022-06-29
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部