Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >测试java jersey应用程序

测试java jersey应用程序
EN

Stack Overflow用户
提问于 2019-06-25 21:39:30
回答 1查看 110关注 0票数 0

我有一个从前端调用的java/jersey api。我需要为java代码编写测试。代码的编写方式是: 1. api调用执行资源方法,该方法调用一个单独的方法,该方法从db获取数据并返回给资源方法。然后这将向客户端返回一个javax.ws.rs.core.Response。

这将是我第一次写测试,所以考虑到我什么都不知道,请回答。从这里开始最好的方法是什么?以及我应该写什么类型的测试。单元测试是我在这里的目标。

现在我已经在这里做了很多研究,我倾向于使用JUnit + Mockito来做这件事。但是如何检查响应对象中的数据呢?

我应该如何检查从db获取数据的另一个文件?我发现DBUnit可以做到这一点,但是我需要它吗?

我遇到的另一个框架是放心的。我也需要包括这一点吗?或者可以用JUnit/Mockito做同样的事情?

我只想从测试过jersey api的人那里得到一些指导,并想知道最常见的方法是什么。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 09:47:44

我不认为有一个最好的方法来做到这一点,您需要测试的内容通常是主观的,并取决于上下文。

然而,你可以以这样一种方式构建你的代码:最重要的部分可以很容易地测试,剩下的(集成)可以在以后/使用不同的工具来完成。

我在这里建议的是遵循六边形架构的原则。这个想法是保持在你的应用程序的中心,没有任何种类的依赖(导入...)任何框架(jaxrsjpa等)所有业务规则。使用TDD可以很容易地设计这些规则。然后,您将有非常短的运行测试。可能有必要使用SPI 来模拟接口的实现。

第二次,您可以通过将适配器连接到外部世界(HTTP、数据库、AMQP等)、使用API并实现SPI接口来使用此“核心”。

如果您想测试这些适配器,您可以退出单元测试的范围,并编写集成测试。集成一个框架,一个协议,任何东西。这类测试可以使用各种各样的工具,从与框架相关的模拟(如Jersey测试框架)、内存数据库(如H2)到使用testcontainers.等工具的完全可操作的中间件实例

在编写集成测试时需要记住的重要一点是,它们在单元测试方面速度很慢。为了使反馈循环尽可能短,您需要将集成测试的数量限制在最小。

希望这能对你有所帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56762368

复制
相关文章
免费音乐在哪里可以找到 免费音乐多吗
现在无论是老年人还是年轻人,甚至于婴儿,都非常爱听歌,有一些歌手为了感谢歌迷这么多年的支持,真的是好的歌手了。毕竟现在随便一首歌都是需要购买vip或者专辑,才可以听曲下载,更过分的是有些音乐播放器或者app在充值之后,只能听歌,但不能下载。那么免费音乐在哪里可以找到?
用户8739405
2021/07/09
5.9K0
SEO优化怎么做_个人做SEO在哪里可以找到
  网站建设之初必须选择合适良好的域名,域名的价值非常重要,在SEO过程中是不可忽视的环节。域名在选择时一定要精短,让搜索用户能够从域名中感受其中含义最为重要,很多企业都会采用简短的拼音所代替,并且更多的人们愿意选择.com后缀,其原因在于用户熟知度更高。其实为了能够及早展现新网站的价值,很多人更愿意去投资老域名,购买老域名时一定要考虑该域名的权重,之前是否被搜索引擎惩罚,同时也可以直接性够购买权重较高的二级域名进行运用,老域名的价值在于各大搜索引擎对其的信任感。
全栈程序员站长
2022/09/27
7280
SEO优化怎么做_个人做SEO在哪里可以找到
如何找到spring的官方文档[通俗易懂]
最近因为项目中遇到了一些问题, 百度不到比较好的方案, 就准备去看下spring的官方文档, 在此记录下:
全栈程序员站长
2022/10/02
2K0
如何找到spring的官方文档[通俗易懂]
怎样插入图表?用图表功能可以插入不同的图表。
1、点击[插入] 2、点击[图表] 3、点击[折线图] 4、点击[确定]
裴来凡
2022/05/28
1.6K0
怎样插入图表?用图表功能可以插入不同的图表。
在繁杂的业务需求中,如何找到API设计的平衡点
关于API设计,有什么好的设计方法,或者说如何来构建一个相对健壮的后端API设计体系?我觉得还是在不断的实践中犯低级错误逐步积累起来的,或者是到了不得不改的时候才会造成这种变革和重构的过程。
jeanron100
2019/11/11
5720
在繁杂的业务需求中,如何找到API设计的平衡点
【硬核教程】只需1秒—你也可以有自己的API文档
先聊聊为什么想到了要用Vuepress来代替原来写在Confluence上的文档。
SH的全栈笔记
2020/01/02
9050
API文档的自动生成
当开发一个大型软件时,需要定义成千上万个类,而且需要很多人参与开发。 每个人都会开发一些类,并在类里定义一些方法和域提供给其他人使用,但 其他人怎么知道如何使用这些类和方法呢? API文档就是用来说明这些应用程序接口的文档。
2020/10/23
9910
API文档的自动生成
Oh my God, Swagger API文档竟然可以这样写?
在ConfigureServices配置Swagger文档,在Configure启用中间件
有态度的马甲
2020/12/18
5670
高级程序员到底高级在哪里?
身为一名技术人,你是否遇到过这些情况? 工作效率低:别人1小时就能修复的bug,你需要3小时 没有存在感:技术趋势看不透,和同事聊天完全插不上话 技术提升慢:苦熬996,但升职加薪仍然遥遥无期 面试总碰壁:禁不住面试官深挖技术点,应聘总是一日游 无论是技术小白还是成熟程序员,在面对日新月异的技术发展浪潮时,总会有某些时刻感觉“自己完全没有成长”或是“发展空间有限”,透过现象看本质,当你遭遇瓶颈期的时候,并不是因为你能力不够,往往是由以下几点造成的: 1、网上的学习资料质量良莠不齐,遇到困难缺乏专业人士指点,
AI科技大本营
2023/05/08
1940
高级程序员到底高级在哪里?
Webhooks与API的区别在哪里?
Webhooks起初看起来像是API,但它们略有不同。它们之间的主要区别在于,webhooks不需要发出请求即可获得响应,而API则需要发送请求才能获得响应。使用Webhooks可以接收,而API需要您检索。
DevOps云学堂
2020/09/29
3.7K0
Webhooks与API的区别在哪里?
TensorFlow中的那些高级API
摘要: 在这篇文章中,我们将看到一个使用了最新高级构件的例子,包括Estimator(估算器)、Experiment(实验)和Dataset(数据集)。值得注意的是,你可以独立地使用Experiment和Dataset。不妨进来看看作者是如何玩转这些高级API的。 TensorFlow拥有很多库,比如Keras、TFLearn和Sonnet,对于模型训练来说,使用这些库比使用低级功能更简单。尽管Keras的API目前正在添加到TensorFlow中去,但TensorFlow本身就提供了一些高级构件,而且
IT派
2018/03/28
1.4K0
TensorFlow中的那些高级API
【整理】各种语言的API文档
名称 在线浏览 C/C++ 点击查看 Java se6 点击查看 Java se7 点击查看 Java se8 点击查看 C#/VB.net 点击查看 PHP 点击查看 Linux C 点击查看 Javascript 点击查看 Android 点击查看 Node.js 点击查看 Bootstrap 点击查看 MFC 点击下载 QT 点击查看 Win32API 点击查看 HTML 点击查看 CSS 点击查看 Redis 点击查看 Python 点击查看 Django 点击查看 MySQL 点击查看 A
ApacheCN_飞龙
2019/02/15
1.4K0
掌握了这些图表的关系,你也可以成为数据图表专家
今天在看资料的时候看到国外的一张关于数据图表关系的汇总图,相对于我们以前讲的数据图表之间的关系,他的分类和描述就更加的细,今天我们和大家来聊一聊这张图,如果你能梳理清楚这些图表的关系,并且能掌握数据图表的制作技能,你也可以成为数据图表专家。我们先来看下面这张图(感谢图表翻译者)
王佩军
2022/02/09
9210
掌握了这些图表的关系,你也可以成为数据图表专家
转:鱼群算法在文档管理系统中可以起到怎样的作用
鱼群算法是一种基于自然界中鱼群行为的计算机算法,可以用于优化问题的解决。在文档管理系统中,鱼群算法可以用来管理和优化网络资源的分配和使用。
啵啵鳐
2023/08/23
1470
Angular 文档中的修改链接是从哪里改的
aio\tools\transforms\templates\lib\githubLinks.html
HoneyMoose
2019/05/15
1.2K0
Angular 文档中的修改链接是从哪里改的
2 - 哪里可以运行 JavaScript?
原文:https://dev.to/bhagatparwinder/where-can-i-run-javascript-995
前端黑板报
2022/04/19
1.4K0
2 - 哪里可以运行 JavaScript?
api接口文档html模板,开发接口文档-api文档模板
大家好,又见面了,我是你们的朋友全栈君。 1、XXX项目接口文档版本控制信息版本日期描述作者V1.02018-8-13创建XXX1 获取所有字段1.1 获取所有字段请求地址:/session/fiel
全栈程序员站长
2022/09/15
18.3K0
字符串在JVM的哪里
另外String提供了一个API, java.lang.String.intern(),这个API可以手动将一个字符串对象的值转移到字符串常量池中
名字是乱打的
2022/05/13
4.4K0
字符串在JVM的哪里
点击加载更多

相似问题

使用mockito或Jmockit模拟私有静态最终字段

40

如何模拟最终的字段?mockito/powermock

20

使用mockito的存根最终方法

10

使用Java反射更改私有静态最终字段

146

使用Mockito/PowerMockito模拟私有最终静态对象

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文