12 | 实战:将 ToDo 应用扩展为一个 REST 服务
扩展前的准备
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何将一个 ToDo 应用扩展为一个 REST 服务,并重点讨论了技术选型、实现过程和测试方法。作者首先讨论了将应用改造成 REST 服务的需求目标,并提到了将基于文件的 Repository 改写成基于数据库的 Repository。选择了 MySQL 和 Spring Data JPA 作为数据访问技术,并对两者进行了比较。在数据库迁移方面,作者提到了使用迁移脚本来管理数据库变更,并展示了创建表和实体的示例。在数据库相关的测试部分,作者介绍了如何使用 Spring 提供的支持进行集成测试,以及如何编写测试代码来验证数据库相关的内容。在设计 RESTful API 部分,作者详细讨论了如何根据应用提供的能力设计相应的接口,并给出了添加、完成和查询 Todo 项的具体设计方案。通过展示测试代码,读者可以了解如何利用 Spring Data JPA 和 MockMVC 进行集成测试,以及如何设计测试用例来覆盖不同的场景。整体而言,本文为读者提供了扩展应用为 REST 服务的全面指导,使读者能够快速了解并掌握相关技术和实践经验。
《程序员的测试课》,新⼈⾸单¥59
全部留言(14)
- 最新
- 精选
- 闻人文中外部对象转为内部对象的实现有必要放到单独的类里吗,减少两个对象的依赖
作者回复: 简单地说,业务核心的代码不应该依赖于外部的请求,所以,外部请求对象不应该直接传到业务核心里面。 如果你想看更多的解释,可以去阅读《代码之丑》的第 11 讲。
2021-08-3032 - chon集成restful的例子写的挺好的,如何处理dubbo的呢?后续章节能否给个完整的例子?谢谢
作者回复: 没有 dubbo 的东西,因为 dubbo 只是一个特定的程序库,不具备普遍适用的特点。 关于如何处理特定的程序库,在 11、12 和 14 讲已经讨论了很多,简言之,就是把它从业务中隔离出去,把它作为一个集成点。如果能有 Mock 的方案就用 Mock 的方案,不能的话,可以放到系统测试里面去测。
2021-09-081 - 不二先生郑老师,你好: 有一个问题想请教下。 MockMVC 创建的模拟网络环境可以连接到数据库?这个数据库是本地的吗?
作者回复: MockMVC只是网络环境,与数据库无关,是否连接数据库是我们自己的事,可以连,也可以不连,在第14讲,我们可以看到具体怎么做。
2021-09-021 - Fredo老师你好 ,更新了一下ToDo项目 build无法通过了,task migrateToDev 这里是不还有漏了啥没上传的
作者回复: 需要你在本地的MySQL中创建数据库,这是第14讲的内容。
2021-08-311 - 大碗有几个问题请教下老师: 1, 参数校验的逻辑在core层也有,算不算重复?现在写在的api里,能否移动到request的构造函数里面判断,然后抛出全局异常再返回BadRequest?实际业务一个add有好几个字段要check,写起来api的函数就好长了 2,测试接口的时候,构造request的使用的字符串json,为什么不用new对象再用工具toJsonString,手打json字符串容易出错 3,测试的数据库用了mysql的一个test库,不用h2是基于什么考虑呢
作者回复: 1. 不算,它俩校验参数是分别针对自己的目标。这就像你不应该担心第三方程序库里所做的校验一样。api里的代码处理的就是与Spring接口的部分,放到Request里面会造成过多的代码与这些框架产生耦合。 2. 可以,我这里因为它简单,就直接写了。 3. 你可以看看第14讲
2021-08-311 - sylan215本节是一个实例验证把一个应用扩展为 REST 服务(自查下具体的意思)。 因为是基于 Java 语言的,所以里面提到很多 Java 的工具,这部分不会,所以不是特别懂,但是大概意思是知道的,几个关键点: 1、接口服务要遵循 RESTful 规范(统一规范对测试来说也意义重大); 2、接口如果涉及对数据的操作,测试完之后尽量要进行清场操作,避免垃圾数据残留(数据构造也是测试的一大难点); 3、本次演示还是遵循接口测试的原则,不涉及接口实现的覆盖;2021-09-164
- ifelse集成测试回滚数据,保证测试的可重复性。--记下来 Springboot很方便2022-06-111
- Geek_3b1096...而不仅仅是围绕着前端需求去做... 期待老师推出API设计课2021-09-081
- 一打七没有理解为什么用构造函数的方式进行注入,老师能解答一下吗?谢谢2023-02-11归属地:北京
- 无道win如果数据库使用的mybatias有没有类似 @DataJpaTest的注解?2022-10-18归属地:上海