日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JerseyTest

發(fā)布時(shí)間:2025/3/17 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JerseyTest 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

?? jersey測(cè)試如果依賴外部web容器,測(cè)試起來就不方便了;如果用maven管理項(xiàng)目的話,編譯、打包也很不方便。

?? 無意中發(fā)現(xiàn)了jersey-test-framework-grizzly2這么一個(gè)測(cè)試框架,感覺用起來還可以。根據(jù)jersey的使用情況,JerseyTest的應(yīng)用稍有不同。

??? 都是繼承com.sun.jersey.test.framework.JerseyTest類,復(fù)寫setUp()、configure(),setUp啟動(dòng)內(nèi)置容器,configure配置資源類包路徑,以及必要的servletClass(默認(rèn)是com.sun.jersey.spi.container.servlet.ServletContainer)。

測(cè)試框架maven依賴

<dependency><groupId>com.sun.jersey.jersey-test-framework</groupId><artifactId>jersey-test-framework-grizzly2</artifactId><version>1.19</version><scope>test</scope> </dependency>

1、單純使用jersey,沒有和其他框架集成,比如spring什么的。這種情況的測(cè)試最為簡(jiǎn)單。項(xiàng)目源碼jersey

package?com.jersey.demo.resources;import?static?org.junit.Assert.assertEquals; import?static?org.junit.Assert.assertTrue;import?java.io.UnsupportedEncodingException; import?java.net.URLEncoder;import?javax.ws.rs.core.MediaType;import?org.junit.Before; import?org.junit.Test;import?com.jersey.demo.core.entity.Member; import?com.sun.jersey.api.client.ClientHandlerException; import?com.sun.jersey.api.client.UniformInterfaceException; import?com.sun.jersey.api.client.WebResource; import?com.sun.jersey.test.framework.AppDescriptor; import?com.sun.jersey.test.framework.JerseyTest; import?com.sun.jersey.test.framework.WebAppDescriptor;/***?繼承JerseyTest進(jìn)行測(cè)試。*?*?@author?sean*?*/ public?class?MemberResourceTest?extends?JerseyTest?{private?final?String?name?=?"張三";private?WebResource?wr;@Beforepublic?void?setUp()?throws?Exception?{super.setUp();wr?=?resource();}/***?默認(rèn)servletClass=com.sun.jersey.spi.container.servlet.ServletContainer*/@Overrideprotected?AppDescriptor?configure()?{return?new?WebAppDescriptor.Builder("com.jersey.demo.resources").contextPath("jerseyDemo").build();}@Testpublic?void?testXml()?{Member?member?=?wr.path("member/xml").accept(MediaType.APPLICATION_XML).get(Member.class);//?驗(yàn)證assertEquals(name,?member.getName());}//?其他測(cè)試用列 }

以上測(cè)試類configure()方法中的Builder的部分源碼如下,可以看出默認(rèn)servletClass=ServletContainer,和jersey在web.xml中的配置是一致的。

public?class?WebAppDescriptor?extends?AppDescriptor?{public?static?class?Builderextends?AppDescriptorBuilder<Builder,?WebAppDescriptor>?{protected?Map<String,?String>?initParams;protected?Map<String,?String>?contextParams;protected?Class<??extends?HttpServlet>?servletClass?=?ServletContainer.class;} }

2、當(dāng)jersey和spring集成的時(shí)候,需要用到com.sun.jersey.spi.spring.container.servlet.SpringServlet,SpringServlet需要加載spring的配置。如果只是簡(jiǎn)單的指定SpringServlet.class,將無法注入spring容器中實(shí)例對(duì)象。

項(xiàng)目源碼jerseySpring

//?這樣是不行的?FIXME @Override protected?AppDescriptor?configure()?{return?new?WebAppDescriptor.Builder("com.jersey.demo.resources").servletClass(SpringServlet.class).contextPath("jerseyDemo").build(); }

所以自定義了一個(gè)servlet,復(fù)寫了SpringServlet的getDefaultContext()方法,加載spring的配置,這樣就完美的集成了。

package?com.jersey.demo.web.servlet;import?org.springframework.context.ConfigurableApplicationContext; import?org.springframework.context.support.ClassPathXmlApplicationContext;import?com.sun.jersey.spi.spring.container.servlet.SpringServlet;public?class?MyJerseyServlet?extends?SpringServlet?{private?static?final?long?serialVersionUID?=?1L;@Overrideprotected?ConfigurableApplicationContext?getDefaultContext()?{return?new?ClassPathXmlApplicationContext("applicationContext.xml");} } package?com.jersey.demo.resources; /***?繼承JerseyTest測(cè)試。*?*?@author?sean*?*/ public?class?MemberResourceTest?extends?JerseyTest?{private?final?String?name?=?"張三";private?WebResource?wr;@Beforepublic?void?setUp()?throws?Exception?{super.setUp();wr?=?resource();}/***?加載自定義的MyJerseyServlet,實(shí)現(xiàn)與spring容器的集成。*/@Overrideprotected?AppDescriptor?configure()?{return?new?WebAppDescriptor.Builder("com.jersey.demo.resources").servletClass(MyJerseyServlet.class).contextPath("jerseyDemo").build();}@Testpublic?void?testXml()?{Member?member?=?wr.path("member/xml").accept(MediaType.APPLICATION_XML).get(Member.class);//?驗(yàn)證assertEquals(name,?member.getName());}//?其他測(cè)試用例 }


轉(zhuǎn)載于:https://my.oschina.net/u/2007041/blog/464277

總結(jié)

以上是生活随笔為你收集整理的JerseyTest的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区片| 天天操夜夜拍 | 免费精品视频一区二区三区 | 天天干天天操天天摸 | 国产精品日韩在线 | av资源共享| 啊av在线| 操日韩| 九九少妇| 国语对白真实视频播放 | 亚洲成人av免费观看 | 好男人视频www | 青青视频免费看 | 日韩美女在线 | 久久网站av | 曰本无码人妻丰满熟妇啪啪 | 李宗瑞91在线正在播放 | 中文字幕在线观看视频免费 | 秘密基地在线观看完整版免费 | 欧美激情一区二区三区在线 | 五级黄高潮片90分钟视频 | 欧美另类高清videos的特点 | 爱情岛av永久入口 | 国产视频一区二区三区在线观看 | 九九热在线观看视频 | 成人高潮片 | 亚洲午夜一区二区三区 | 亚洲国产aⅴ成人精品无吗 日韩乱论 | 中国丰满老太hd | 亚洲免费色视频 | 一级黄色伦理片 | 欧美性生交大片免费看app麻豆 | 麻豆午夜视频 | 成人自拍视频在线 | 亚洲一区二区福利 | 久久久久九九 | 日本少妇xxxx | 精品久久BBBBB精品人妻 | 国产二区av | 成人三级在线看 | 99热这里只有精品66 | 玖玖玖视频| 一区福利视频 | 国产亚洲欧美精品久久久久久 | 久久国产成人精品 | 成人av网站在线播放 | 91不卡视频| 在线观看黄色av | 日韩电影精品 | 亚洲首页| 老公吃小头头视频免费观看 | 中文av资源 | 日韩经典一区二区 | 91片黄在线观看喷潮 | 深夜影院深a | 日韩在线精品强乱中文字幕 | 黄色欧美大片 | 欧美福利在线观看 | chinese hd av| 亚洲色图3p | 经典一区二区 | 在线观看9.1 | 中文字幕精品视频 | av成人免费| 俺也来俺也去俺也射 | 久久国产精品国语对白 | 国产一久久| 女人下边被添全过视频 | 精品国产无码一区二区三区 | 一本一道久久综合狠狠老精东影业 | 日韩www. | 久久久免费高清视频 | 亚洲天天看 | 久草免费在线观看视频 | 亚洲一卡二卡在线观看 | 被两个男人吃奶三p爽文 | 国产精欧美一区二区三区白种人 | 欧美夜夜骑 | 爱情岛论坛成人av | 日韩视频在线观看视频 | 欧美日韩一二三四 | jizz日本免费 | 天躁夜夜躁狼狠躁 | 人妻互换免费中文字幕 | 日韩成人福利 | 在线观看国产麻豆 | 免费看日产一区二区三区 | 国产丝袜美腿一区二区三区 | 日本在线视频一区二区 | 亚洲性喷水 | 亚洲欧美一区二区三 | 亚洲人丰满奶水 | 在线观看av的网站 | 中文字幕乱码无码人妻系列蜜桃 | 欧美日韩国产二区 | 国产精品久久久久久久久久东京 | 五月天在线播放 | 官场艳妇疯狂性关系 | 欧美日韩精品网站 |