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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring测试支持和上下文缓存

發(fā)布時(shí)間:2023/12/3 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring测试支持和上下文缓存 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Spring為單元測試和集成測試提供了全面的支持-通過注釋來加載Spring應(yīng)用程序上下文,并與JUnit和TestNG等單元測試框架集成。 由于為每個(gè)測試加載大型應(yīng)用程序上下文需要時(shí)間,因此Spring智能地為測試套件緩存應(yīng)用程序上下文–通常,當(dāng)我們通過ant或maven對項(xiàng)目執(zhí)行測試時(shí),會(huì)創(chuàng)建一個(gè)包含項(xiàng)目中所有測試的套件。

我打算在這里介紹一些有關(guān)緩存的注意事項(xiàng),這可能并不全面,但是基于我遇到的某些情況:

1.緩存基于Spring應(yīng)用程序上下文文件的位置

考慮一個(gè)示例Spring配置文件:

<?xml version='1.0' encoding='UTF-8' standalone='no'?> <beans xmlns='http://www.springframework.org/schema/beans'xmlns:context='http://www.springframework.org/schema/context'xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'xmlns:p='http://www.springframework.org/schema/p'xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd'><bean id='user1' class='org.bk.lmt.domain.TaskUser' p:username='user1' p:fullname='testUser1' /><bean name='user2' class='org.bk.lmt.domain.TaskUser' p:username='user2' p:fullname='testUser' /><bean class='org.bk.contextcaching.DelayBean'/></beans>

還有一個(gè)樣本測試,用于加載此上下文文件并進(jìn)行驗(yàn)證。

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { 'contexttest.xml' }) public class Test1 {@Autowired Map<String, TaskUser> usersMap;@Testpublic void testGetAUser() {TaskUser user = usersMap.get('user1');assertThat(user.getFullname(), is('testUser1'));} }

我故意添加了一個(gè)bean(DelayBean),它花了大約2秒鐘來實(shí)例化,以模擬加載緩慢的Spring Application Context。

如果我現(xiàn)在運(yùn)行一個(gè)帶有兩個(gè)測試的小型測試套件,兩個(gè)測試都使用相同的應(yīng)用程序上下文,則行為是第一個(gè)測試需要大約2秒鐘才能運(yùn)行,但是第二個(gè)測試由于上下文緩存而很快就可以運(yùn)行。

如果使用不同的應(yīng)用程序上下文進(jìn)行了第三項(xiàng)測試,則該測試將再次花費(fèi)時(shí)間來運(yùn)行,因?yàn)楸仨毤虞d新的應(yīng)用程序上下文:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { 'contexttest2.xml' }) public class Test3 { ... }

2.應(yīng)用程序上下文的緩存尊重運(yùn)行測試的活動(dòng)配置文件–本質(zhì)上,該配置文件也是Spring用于緩存上下文的內(nèi)部密鑰的一部分,因此,如果兩個(gè)測試使用的是完全相同的應(yīng)用程序上下文,但不同的配置文件是對于每個(gè)測試都處于活動(dòng)狀態(tài),則緩存的應(yīng)用程序上下文將不會(huì)用于第二個(gè)測試:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { 'contexttest.xml' }) @ActiveProfiles('dev1') public class Test1 { .... @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { 'contexttest.xml' }) @ActiveProfiles('dev2') public class Test2 { ....

3.即使使用新的@Configuration樣式定義應(yīng)用程序上下文并在測試中使用它,應(yīng)用程序上下文的緩存也適用:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes={TestConfiguration.class}) public class Test1 { ... @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes={TestConfiguration.class}) public class Test2 { ....

緩存的一個(gè)含義是,如果測試類修改了bean的狀態(tài),則測試套件中使用緩存的應(yīng)用程序上下文的另一個(gè)類將最終看到修改后的bean,而不是在應(yīng)用程序上下文中定義的bean。 :

例如。 考慮兩個(gè)測試,這兩個(gè)測試都在上下文中修改了一個(gè)bean,但是在狀態(tài)中聲明了它在應(yīng)用程序上下文中定義的方式–在這里,其中一個(gè)測試最終會(huì)失敗(基于Junit執(zhí)行測試的順序) ):

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes={TestConfiguration.class}) public class Test1 {@Autowired Map<String, TaskUser> usersMap;@Testpublic void testGetAUser1() {TaskUser user = usersMap.get('user1');assertThat(user.getFullname(), is('testUser1'));user.setFullname('New Name');}@Testpublic void testGetAUser2() {TaskUser user = usersMap.get('user1');assertThat(user.getFullname(), is('testUser1'));user.setFullname('New Name');} }

解決方法是指示Spring測試支持人員該應(yīng)用程序上下文現(xiàn)在很臟并且需要為其他測試重新加載,這是通過@DirtiesContext批注完成的,可以在測試類級別或測試方法級別指定該批注。

@Test @DirtiesContext public void testGetAUser2() { ...

祝您編程愉快,別忘了分享!

參考: all和其他博客中的JCG合作伙伴 Biju Kunjummen提供的Spring測試支持和上下文緩存 。


翻譯自: https://www.javacodegeeks.com/2012/09/spring-testing-support-and-context.html

總結(jié)

以上是生活随笔為你收集整理的Spring测试支持和上下文缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人爱爱 | 黄色av网站在线播放 | 日本三级中文字幕在线观看 | 中文成人无字幕乱码精品区 | 91最新视频 | 亚洲男女 | 亚洲a级在线观看 | 国产成人a v | 国产精品国产三级国产a | 在线视频资源 | 亚洲av成人片无码 | 情五月 | 加勒比不卡视频 | 久热这里| 女同性做受全过程动图 | 欧美无人区码suv | 成人激情小说网站 | 少妇一级淫片免费放2 | 久久最新网址 | 啦啦啦视频在线观看 | 99热一区| 精品国产污污免费网站入口 | 婷婷色激情 | 黄色美女一级片 | 香蕉视频在线免费 | 国产成人一区二区三区影院在线 | 韩国三级中文字幕 | 天堂俺去俺来也www久久婷婷 | a级无毛片 | 一级二级在线观看 | 高清国产视频 | 欧美大片在线观看 | 国产日韩精品一区 | 亚洲男人的天堂网站 | 狼干综合 | av每日更新 | 影音先锋激情在线 | 欧美性爱精品在线 | 免费成人黄色 | 麻豆传媒网站 | 制服.丝袜.亚洲.中文.综合懂色 | 国产精品4 | 国产黄色录相 | 女人裸体无遮挡 | 屁屁影院国产第一页 | 日本高清黄色 | 久久久久无码精品 | 黄色大片日本 | 日韩成人精品在线观看 | 三级黄色片免费 | 亚洲无av在线中文字幕 | 美女脱衣服一干二净 | 二级黄色录像 | 国产精品久久影院 | 日本天天操| 在线精品自拍 | 九九精品影院 | 国产午夜精品久久久久久久 | 午夜不卡久久精品无码免费 | 女人高潮特级毛片 | 成人精品综合 | 青青青视频在线播放 | 亚洲综合激情网 | h在线播放| 爱爱视频免费看 | 粉嫩av蜜桃av蜜臀av | 欧美日韩中文字幕一区二区三区 | 7色av| 免费毛片一级 | 曰本黄色片 | 制服丝袜快播 | 四虎免费看黄 | 久久网址 | 亚洲图片欧美在线 | 午夜影院在线 | 一区二区三区四区精品视频 | 欧美日韩精选 | 亚洲欧美日韩一区二区三区在线观看 | 老司机成人免费视频 | 韩国伦理片在线看 | 欧美成年人网站 | 久久久九九九热 | 亚洲色图另类图片 | 亚洲一区二区视频在线 | 中文字幕 人妻熟女 | 亚洲性猛交富婆 | av中文一区 | 三级网站国产 | 深夜影院深a | 午夜xxx| 偷看洗澡一二三区美女 | 91网站免费在线观看 | 日本高清在线一区 | 奇米影视在线观看 | 秋霞精品一区二区三区 | 日本一区二区免费高清视频 | 亚洲AV成人午夜无码精品久久 | 激情全身裸吻胸 | av资源新版在线天堂 |