国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

IDEA 插件自動生成單元測試,懶人必備!

共 10755字,需瀏覽 22分鐘

 ·

2022-05-24 11:30

不點(diǎn)藍(lán)字關(guān)注,我們哪來故事?


一個(gè)指導(dǎo)程序員進(jìn)入大公司/獨(dú)角獸?的精品社群,致力于分享職場達(dá)人的專業(yè)打法,包括「學(xué)習(xí)路線+簡歷模板+實(shí)習(xí)避坑+筆試面試+試用轉(zhuǎn)正+升職加薪+跳槽技巧」。

點(diǎn)這里去了解,劍指大廠吧!








今天來介紹一款工具Squaretest,它是一款自動生成單元測試的插件,為什么會用到它?

主要因?yàn)樽罱旧狭舜a質(zhì)量管控的指標(biāo),會考評各個(gè)項(xiàng)目的單元測試覆蓋率,以及sonar掃描出來的各種問題,很多老項(xiàng)目老代碼,或者著急交付的項(xiàng)目,單元測試嚴(yán)重缺失,覆蓋率只有5%不到。

所以幾個(gè)小伙伴這幾天就在瘋狂的堆單元測試,3個(gè)人堆了2天才堆到30%,于是我也來上手幫忙寫了兩個(gè),寫到第二個(gè)的時(shí)候就發(fā)現(xiàn),這個(gè)活不應(yīng)該是人干的,要去看原來的代碼,然后根據(jù)邏輯寫各種Mock,感覺是有跡可循的東西,所以就查了下,發(fā)現(xiàn)果然有插件幫我們來干這個(gè)事情,那么解下來就來看看。

我使用的是idea,我們先來下載一下插件,File——>Settings——>Plugins,搜索Squaretest,然后install就好了,插件安裝完成后需要重啟一下

重啟之后,菜單欄就多了一項(xiàng)Squaretest,下面我們來講下怎么用,大家也可以通過看這個(gè)菜單的最后一項(xiàng):Generate Test Methods(Help)來看它的一個(gè)演示,但演示不太全,我下面截圖給大家看下我怎么用的,以及一些使用心得。


首先我們打開一個(gè)類,這個(gè)類就是我們即將要作為實(shí)驗(yàn)的類,這個(gè)類有7個(gè)public方法,因?yàn)?/span>Squaretest生成的單元測試方法都是只能生成public的,當(dāng)然這也是合理的嘛!畢竟private的肯定被public調(diào)用了。


如果我們來手寫這個(gè)類的單元測試,光看都要一會,下面看我操作,打開你的類,光標(biāo)定位到代碼里,右擊鼠標(biāo)選擇Generate…


然后你就會看到這里有兩個(gè)熟悉的圖標(biāo),第一次的話選擇第二個(gè)選項(xiàng),它會讓你選擇你一下單元測試的模板,因?yàn)槲乙呀?jīng)選擇過了,所以我現(xiàn)在演示不回再彈出,但后面我會告訴你怎么更改模板。


選擇第二項(xiàng)后就會彈出一個(gè)框看下面這里它自動會識別出當(dāng)前類需要Mock的成員變量,直接點(diǎn)ok


自動會使用類的真實(shí)目錄層次在test文件夾中創(chuàng)建出來一個(gè)單元測試類,類名就是原類名后加Test


我把代碼貼出來給大家看看它生成出來的是什么樣的,看看嚇不嚇人,牛逼牛逼,7個(gè)單元測試方法,秒秒鐘就出來了,各位看官你們自己寫要多久能寫出來,畢竟時(shí)間就是金錢啊!然后我們執(zhí)行一把試試!

public?class?CrawlerScreenShotServiceImplTest?{

????@Mock
????private?CrawerScreenShotTaskMapper?mockCrawerScreenShotTaskMapper;
????@Mock
????private?CrawerScreenShotTaskLogMapper?mockCrawerScreenShotTaskLogMapper;

????@InjectMocks
????private?CrawlerScreenShotServiceImpl?crawlerScreenShotServiceImplUnderTest;

????@Before
????public?void?setUp()?{
????????initMocks(this);
????}

????@Test
????public?void?testReceiveData()?{
????????//?Setup
????????final?CrawlerScreenShotVO?vo?=?new?CrawlerScreenShotVO();
????????vo.setUrl("url");
????????vo.setPcFlag(false);
????????vo.setMembergroup("membergroup");
????????vo.setTaskType(0);
????????vo.setUrlType(0);

????????when(mockCrawerScreenShotTaskLogMapper.saveSelective(any(CrawerScreenShotTaskLog.class))).thenReturn(0);
????????when(mockCrawerScreenShotTaskMapper.saveBatch(Arrays.asList(new?CrawlerScreenShotTask(0L,?"url",?"imageOssUrl",?false,?false,?"memberGroup",?0,?0,?"fileName",?new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime(),?new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime(),?false,?"skuCode",?"state",?"operater")))).thenReturn(0);

????????//?Run?the?test
????????final?Result?result?=?crawlerScreenShotServiceImplUnderTest.receiveData(vo);

????????//?Verify?the?results
????}

????@Test
????public?void?testListJobScreenShotTask()?{
????????//?Setup

????????//?Configure?CrawerScreenShotTaskMapper.listJobScreenShotTask(...).
????????final?CrawlerScreenShotTaskDto?crawlerScreenShotTaskDto?=?new?CrawlerScreenShotTaskDto();
????????crawlerScreenShotTaskDto.setId(0L);
????????crawlerScreenShotTaskDto.setUrl("url");
????????crawlerScreenShotTaskDto.setSkuCode("skuCode");
????????crawlerScreenShotTaskDto.setPcFlag(false);
????????crawlerScreenShotTaskDto.setMemberGroup("memberGroup");
????????crawlerScreenShotTaskDto.setUrlType(0);
????????crawlerScreenShotTaskDto.setFileName("fileName");
????????crawlerScreenShotTaskDto.setTaskType(0);
????????crawlerScreenShotTaskDto.setState("state");
????????final?List?crawlerScreenShotTaskDtos?=?Arrays.asList(crawlerScreenShotTaskDto);
????????when(mockCrawerScreenShotTaskMapper.listJobScreenShotTask(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime())).thenReturn(crawlerScreenShotTaskDtos);

????????//?Run?the?test
????????final?List?result?=?crawlerScreenShotServiceImplUnderTest.listJobScreenShotTask();

????????//?Verify?the?results
????}

????@Test
????public?void?testQuery()?{
????????//?Setup
????????final?NikeScreenShotListRequestVo?requestVo?=?new?NikeScreenShotListRequestVo();
????????requestVo.setUrl("url");
????????requestVo.setUrlType(0);
????????requestVo.setStartTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());
????????requestVo.setEndTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());
????????requestVo.setStatus(0);
????????requestVo.setPcFlag(0);
????????requestVo.setPageNum(0);
????????requestVo.setPageSize(0);

????????//?Configure?CrawerScreenShotTaskMapper.query(...).
????????final?PimScreenShotVo?pimScreenShotVo?=?new?PimScreenShotVo();
????????pimScreenShotVo.setId(0L);
????????pimScreenShotVo.setUrl("url");
????????pimScreenShotVo.setImageOssUrl("imageOssUrl");
????????pimScreenShotVo.setStatus(0);
????????pimScreenShotVo.setPcFlag(false);
????????pimScreenShotVo.setCreateTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());
????????pimScreenShotVo.setUrlType(0);
????????pimScreenShotVo.setMsg("msg");
????????final?List?pimScreenShotVos?=?Arrays.asList(pimScreenShotVo);
????????when(mockCrawerScreenShotTaskMapper.query(any(NikeScreenShotListRequestVo.class))).thenReturn(pimScreenShotVos);

????????//?Run?the?test
????????final?PageInfo?result?=?crawlerScreenShotServiceImplUnderTest.query(requestVo);

????????//?Verify?the?results
????}

????@Test
????public?void?testQuerySelectBoxData()?{
????????//?Setup

????????//?Configure?CrawerScreenShotTaskMapper.query(...).
????????final?PimScreenShotVo?pimScreenShotVo?=?new?PimScreenShotVo();
????????pimScreenShotVo.setId(0L);
????????pimScreenShotVo.setUrl("url");
????????pimScreenShotVo.setImageOssUrl("imageOssUrl");
????????pimScreenShotVo.setStatus(0);
????????pimScreenShotVo.setPcFlag(false);
????????pimScreenShotVo.setCreateTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());
????????pimScreenShotVo.setUrlType(0);
????????pimScreenShotVo.setMsg("msg");
????????final?List?pimScreenShotVos?=?Arrays.asList(pimScreenShotVo);
????????when(mockCrawerScreenShotTaskMapper.query(any(NikeScreenShotListRequestVo.class))).thenReturn(pimScreenShotVos);

????????//?Run?the?test
????????final?PimScreenShotTaskParamsDto?result?=?crawlerScreenShotServiceImplUnderTest.querySelectBoxData();

????????//?Verify?the?results
????}

????@Test
????public?void?testFindExecutionScreenShotTaskCount()?{
????????//?Setup
????????when(mockCrawerScreenShotTaskMapper.findExecutionScreenShotTaskCount()).thenReturn(0);

????????//?Run?the?test
????????final?Integer?result?=?crawlerScreenShotServiceImplUnderTest.findExecutionScreenShotTaskCount();

????????//?Verify?the?results
????????assertEquals(0,?result);
????}

????@Test
????public?void?testFindCrawerScreenshotTaskByCreateTime()?{
????????//?Setup
????????final?CrawlerScreenShotTaskSyncDto?crawlerScreenShotTaskSyncDto?=?new?CrawlerScreenShotTaskSyncDto();
????????crawlerScreenShotTaskSyncDto.setId(0L);
????????crawlerScreenShotTaskSyncDto.setUrl("url");
????????crawlerScreenShotTaskSyncDto.setSkuCode("skuCode");
????????crawlerScreenShotTaskSyncDto.setTaskType(0);
????????crawlerScreenShotTaskSyncDto.setStatus(0);
????????crawlerScreenShotTaskSyncDto.setLastModifyTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());
????????crawlerScreenShotTaskSyncDto.setOperater("operater");
????????crawlerScreenShotTaskSyncDto.setMsg("msg");
????????final?List?expectedResult?=?Arrays.asList(crawlerScreenShotTaskSyncDto);

????????//?Configure?CrawerScreenShotTaskMapper.findCrawerScreenshotTaskByCreateTime(...).
????????final?CrawlerScreenShotTaskSyncDto?crawlerScreenShotTaskSyncDto1?=?new?CrawlerScreenShotTaskSyncDto();
????????crawlerScreenShotTaskSyncDto1.setId(0L);
????????crawlerScreenShotTaskSyncDto1.setUrl("url");
????????crawlerScreenShotTaskSyncDto1.setSkuCode("skuCode");
????????crawlerScreenShotTaskSyncDto1.setTaskType(0);
????????crawlerScreenShotTaskSyncDto1.setStatus(0);
????????crawlerScreenShotTaskSyncDto1.setLastModifyTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());
????????crawlerScreenShotTaskSyncDto1.setOperater("operater");
????????crawlerScreenShotTaskSyncDto1.setMsg("msg");
????????final?List?crawlerScreenShotTaskSyncDtos?=?Arrays.asList(crawlerScreenShotTaskSyncDto1);
????????when(mockCrawerScreenShotTaskMapper.findCrawerScreenshotTaskByCreateTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime())).thenReturn(crawlerScreenShotTaskSyncDtos);

????????//?Run?the?test
????????final?List?result?=?crawlerScreenShotServiceImplUnderTest.findCrawerScreenshotTaskByCreateTime(new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());

????????//?Verify?the?results
????????assertEquals(expectedResult,?result);
????}

????@Test
????public?void?testQueryCrawlerDashboard()?{
????????//?Setup
????????when(mockCrawerScreenShotTaskMapper.queryCrawlerDashboard(0,?0,?0,?new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime(),?new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime())).thenReturn(0);

????????//?Run?the?test
????????final?Integer?result?=?crawlerScreenShotServiceImplUnderTest.queryCrawlerDashboard(0,?0,?0,?new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime(),?new?GregorianCalendar(2019,?Calendar.JANUARY,?1).getTime());

????????//?Verify?the?results
????????assertEquals(0,?result);
????}
}

報(bào)錯(cuò)了呢,不要慌,這個(gè)斷言是為了檢查你單元測試跑出來的結(jié)果是否符合預(yù)期的,如果你不想檢查只想完成覆蓋率,直接干掉就可以了(手動狗頭)。

怎么樣!刺不刺激,爽不爽,秒秒鐘90多行的代碼覆蓋率就到了90%以上.


上面說過第一次進(jìn)來會讓你選擇單元測試的模板,如果你要切換的話可以在單元測試類中按快捷鍵,Alt+M,或者通過Squaretest的菜單倒數(shù)第二個(gè),下面這個(gè)就是按快捷鍵的效果,我選擇的是這個(gè)模板,你們也可以借鑒。


OK,以上Squaretest部分就結(jié)束了,當(dāng)然拉也不能高興的太早,這個(gè)類算是比較成功的情況,很多時(shí)候還是要你自己小修小改的,畢竟它生成出來的測試數(shù)據(jù)可能完全匹配不上你的if else數(shù)據(jù)對吧,但這都很好改啊,這樣就從自己分析if else變成了,debug程序了呀,哪里報(bào)錯(cuò),debug過去,看看是不是生成的數(shù)據(jù)有問題,改個(gè)數(shù)據(jù),就通過了,反正本人用的是很舒暢的,妥妥的節(jié)省70%的工作量。

解決了上面一個(gè)問題之后,又發(fā)現(xiàn)另一個(gè)問題,這個(gè)工具VO,DTO,Entity,Command,Model這種實(shí)體類來講,一般這種實(shí)體類我們都用lombok的注解get,set,還有constract構(gòu)造器等注解,但是這個(gè)工具只能生成這些實(shí)體類的構(gòu)造器的單元測試,無法生成get set方法的單元測試,所以寫了個(gè)base方法,實(shí)體類繼承一下,簡單的寫兩行帶就好了,看下面代碼:

@SpringBootTest
@RunWith(MockitoJUnitRunner.class)
public?abstract?class?BaseVoEntityTest<T>?
{
????protected?abstract?T?getT();

????private?void?testGetAndSet()?throws?IllegalAccessException,?InstantiationException,?IntrospectionException,
????????????InvocationTargetException?
{
????????T?t?=?getT();
????????Class?modelClass?=?t.getClass();
????????Object?obj?=?modelClass.newInstance();
????????Field[]?fields?=?modelClass.getDeclaredFields();
????????for?(Field?f?:?fields)?{
????????????boolean?isStatic?=?Modifier.isStatic(f.getModifiers());
????????????//?過濾字段
????????????if?(f.getName().equals("isSerialVersionUID")?||?f.getName().equals("serialVersionUID")?||?isStatic?||?f.getGenericType().toString().equals("boolean")
????????????????????||?f.isSynthetic())?{
????????????????continue;
????????????}
????????????PropertyDescriptor?pd?=?new?PropertyDescriptor(f.getName(),?modelClass);
????????????Method?get?=?pd.getReadMethod();
????????????Method?set?=?pd.getWriteMethod();
????????????set.invoke(obj,?get.invoke(obj));
????????}
????}

????@Test
????public?void?getAndSetTest()?throws?InvocationTargetException,?IntrospectionException,
????????????InstantiationException,?IllegalAccessException?
{
????????this.testGetAndSet();
????}

}

同樣的方式我們在實(shí)體類上通過Squaretest生成單元測試,然后繼承我上面寫的那個(gè)base類,vo的單元測試代碼稍加改動,如下

看run完之后,覆蓋率100%,妥妥的,通過這兩個(gè)解決方案,一天之內(nèi)我們就把覆蓋率搞到了60%以上,不要太刺激,大家可以用用試試哦,當(dāng)然這個(gè)也不是純?yōu)榱藨?yīng)付差事寫的單元測試,我們后續(xù)開發(fā)的時(shí)候,也可以用這個(gè)工具來生成,然后自測自己的代碼,這樣也是提升工作效率的嘛!


推薦


歡迎加入我的知識星球,一起劍指大廠,不斷晉升加薪。

劍指大廠不僅是一個(gè)獲取信息的圈子,還是一個(gè)規(guī)劃職業(yè)的導(dǎo)師。已在知識星球,更新如下點(diǎn)這里去了解,劍指大廠吧!或點(diǎn)擊下圖了解):


//////?END?//////
↓ 點(diǎn)擊下方關(guān)注,看更多架構(gòu)分享?↓
瀏覽 36
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 精精国产| 狼人狠干| 成人小说视频| 波多野结衣无码AV在线| 韩国午夜福利视频| 色综合大香蕉| 特黄AV| 开心色播五月天| 欧美一卡| 闷骚艳岳的婬乱生活视频| 操逼操逼操逼操逼操逼操逼| 成人小说一区二区三区| 黄网站免费观看| 婷婷综合欧美| 在线免费观看毛片| 自拍一区在线观看| 69国产精品成人无码视频色 | 亚洲国产精品久久| 91久久久裸身美女| 国产高清A片| 看毛片网站| aav在线| 东京热一区二区三区| 亚洲午夜精品久久久久久APP| 美日韩一区二区三区| 国产成人在线免费观看| 国产精品自产拍| 免费观看黄色片| 亚洲国产精品欧美久久| 九九热av| chip少妇性| 五月丁香视频在线观看| 免费观看无码视频| 欧美+日韩+国产+成人+在线| 精品999| 天天操天天操天天操天天| 一区二区三区四区在线播放| 在线观看免费完整版中文字幕视频| 日本天堂在线视频| 操逼免费| 成人午夜婬片A片| 亚洲性爱中文字幕| 亚洲成人在线视频免费观看| 国产成人精品一区二区三区| 免费观看黄色一级片| 熟女18p| 欧美成人精品A片免费一区99 | 最近中文字幕免费mv第一季歌词強上 | 三级乱伦86丝袜无码| 午夜无码三级| 黄页网站在线观看| 迷情校园综合| 韩国午夜电影| 刘玥一区二区三区| 午夜免费性爱视频| 久久精品成人导航| 俺来也俺去啦欧美www| 国产无套内射视频| 色老板免费精品无码免费视频| 日韩欧美v| 国产精品秘入口18禁网站| 亚洲日韩视频在线播放| 亚洲色视频在线观看| 熊猫成人网| 熟女人妻一区二区三区免费看| 亚洲国产成人电影| www.插逼| jiujiuav| 玖玖综合网| 山东熟妇搡BBBB搡BBBB| 大香蕉在线看| 人人操碰人人| 国产娇小13videos糟蹋| 91久久精品一区二区三区| 韩国高清无码视频| 成人A片免费在线观看| 91乱子伦国产乱子伦| 2025中文字幕在线| 韩国精精品视频| 亚洲黄色一区| 黄色片在线视频| 久久综合电影| 无码高潮视频| 日韩中文字幕无码| A片免费在线播放| 人妖和人妖互交性XXXX视频| 国产精成人品| 欧美国产一区二区| se婷婷| 午夜三级福利| 一级大香蕉| 成人视频在线免费观看| AV天天看| 成人做爰100片免费着| 野花AV| 影音先锋麻豆| 尤物视频网站在线观看| a视频在线免费观看| 午夜第一页| 中文字幕在线观看福利视频| 福利视频二区| 成人动漫| 国产亚洲视频在线观看视频| 国产综合精品久久久久成人AV| 精品三级在线观看| 欧美亚洲天堂| 欧美XXX黑人XYX性爽| 国产男女无套免费| 国产福利视频在线观看| 欧美一区二区三区成人片下载| 五月天色婷婷丁香| 91嫩草欧美久久久九九九| 欧美A片网站| 无码视频免费播放| 日韩人妻一区二区| 日本高清无码在线观看| 成人毛片一区二区三区无码| 亚洲天媒在线播放| 先锋影音AV在线| 撸一撸在线观看| 中文字幕天堂网| 一本色道久久综合亚洲精品久久| 黄色操逼大片| 四川少妇bbbb| 成人伊人网| 激情av在线| 黄色中文字幕| 毛片黄色片| 成人激情在线| 日本特黄AA片免费视频| 豆花视频在线免费观看| 国产主播精品在线| 国产激情网站| 京东一热本色道久久爱| 国产无码高清在线观看| 日无码在线| 国产成人一区二区| 99热青青草| 五月天婷婷黄色| 茄子av| h片在线播放| 国产成人无码免费看片| 国产一级a一片成人AV| 日韩A级视频| 插进去综合图| 91亚洲精品视频| 豆花视频成人版www满18| 成人黄色无码视频| 91网站观看| 三级国产网站| 欧洲黑种人日P视频| 国产av一级| 欧美操逼的| 熟女综合网| 在线国产日韩| 国产女人18水真多18精品| 久久丁香五月天| 天天日夜夜爽| 嫩草亚洲小泬久久夂| 69AV在线播放| 99久视频| 黄色电影一级片| 亚洲色图自拍| 亚洲色图欧美| 好吊AV| 日韩毛片视频| 操少妇视频| 一本一本久久a久久精品牛牛影视 91无码人妻精品一区二区蜜桃 | 欧美丝袜脚交xxxxBH| 97男人的天堂| 九九热在线视频| 国产一级a毛一级a毛片视频黑人| 无码日逼| av福利在线观看| 欧美日韩小视频| 在线播放JUY-925被丈夫上司侵犯的第7天 | 男人在线天堂| 国产熟妇婬乱A片免费看牛牛| av黄色在线观看| 高潮视频在线观看| 就去色色五月丁香婷婷久久久| 青娱乐国产精品| 日韩AA片| 成人小视频在线| 淫荡人妻视频| 欧美熟妇精品一级A片视色| 国产77777| 国产午夜91人妻| 人人人妻人人人操| 狼友视频在线免费观看| 日日摸日日碰| 欧美成人毛片AAAAAA| 国产成人无码毛片| 人人色人人黄| 亚洲第一无码| 不卡的av在线| 欧美精品成人| 大香蕉现在视频中心一| 成年人视频在线观看免费| 日韩一级片在线| 久久精品一区二区三区不卡牛牛| 久久区| 高清无码人妻| 免费一级婬片AA片观看| 国产一精品一aⅴ一免费| 日日干AV| 无码精品电影| 加勒比综合在线| 国产精品18进进出出17c| 亚洲一卡| 伊人操逼| 成人做爰100部免费网站| 欧美日韩精品在线观看| 日韩无码久| 久久五月天综合| 夜夜夜叫天天天做| 三级片网站大全| 国产成人久久| 最好看2019中文在线播放电影| 99久热在线精品| 成人小说一区二区三区| 伊人成色| 懂色成人视频在线观看| 亚洲黄色在线免费观看| 久草视频播放| 亲子乱一区二区三区视频| 中文字幕亚洲在线| 亚洲在线观看网站| 台湾无码片| 99无码| 99热这里只有精品9| 开心激情播播网| 亚洲中文中出| 免费手机av| 日韩A视频| 久久亚洲Aⅴ成人无码国产丝袜| 影音先锋91久久网| 亚洲专区在线播放| yw尤物| 欧美偷拍一区二区| 国产性猛交╳XXX乱大交| 黑巨茎大战欧美白妞小说| 中文字幕在线观看亚洲| 国产乱国产乱老熟300视频| 一级黄色视频片| 狠狠操狠狠操狠狠操| 99热这里只有精品9| 做爱视频91| 3D动漫精品一区二区在线播放免费 | 日本一级黄色A片| 免费观看黄色片| 少妇精品无码一区二区免费视频| 996热re视频精品视频这里| 国色天香网站| 无码中文字幕网站| 国产一级精品视频| 国产精品码ls字幕影视| 琪琪色在线视频| 一级A片免费看| 久操新在线| 无码人妻一区二区三区免水牛视频| 91av免费观看| 欧美性久久久久| 人人操人人爽人人妻| 欧美成人天堂| 一级黄色录像片| 91精品少妇高潮一区二区三区不卡| 天堂资源中文在线| 足浴小少妇-88AX| 亚洲欧美高清视频| 日产电影一区二区三区| 強姧伦一区二区三区在线播放| 国产成人精品a区在线观看| 久久久成人影片| 综合夜夜| 欧美成人A级片| 日韩欧美视频在线播放| 日逼综合| 国产主播精品在线| 免费国产在线视频| 精品视频| 日屄免费视频| 亚洲色图片区| 猫咪成人网站| 91久久精品一区二区三区| 激情婷婷综合| 黄色精品视频| av一区在线| 蜜桃av一区二区三区| 亚洲综合区| 国产三级性爱视频| 伊人成人大香蕉| 亚洲高清国产欧美综合s8| 国产精品久久久久久久牛牛| 日韩成人在线免费观看| www超碰在线| 暖暖高清无码| 国产一级AAAAA片免费| 成人一区二区三区四区五区| 国产乱子伦精品免费,| 山东熟妇搡BBBB搡BBBB| 日韩欧美高清无码| 国产精品三级在线观看| 中文字幕免费看高清| 黄色在线视频观看| 无码免费婬AV片在线观看| 欧美色图狠狠操| 亚洲视频黄色| 欧美色综合| 亚洲av网站在线观看| 99热7| 亚洲人妻性爱| 中国老女人性爱视频| 影音先锋一区二区三区| 国产乱子伦真实精品!| 精品久久精品| 影视先锋久久| 国产香蕉视频在线观看| 人人摸人人搞| 蜜臀AV午夜精品| 久久婷婷国产| 国产wwwww| 日韩a级片| 女人自慰网站在线观看| 天天草天天撸| 国产午夜福利视频| 高清日韩欧美| 操啊操| 三级高清无码视频| 亚洲图片在线观看| 干欧美美女| 麻豆成人精品国产免费| 无码视频播放| 五月天婷婷黄色| 国产少妇| 蜜臀精品色无码蜜臀AV| 欧美一级婬片A片免费软件| 欧洲精品在线视频| av片在线观看| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 精品国产区| 黄色A一级| 农村老太HD肉HD| 丰满人妻一区二区三区视频在线不卡 | 性猛交AAAA片免费观看直播| 91免费| 麻豆毛片| 最新三级网站| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 日本免费中文字幕| 亚洲砖区免费| 免费黄色视频大全| 激情二区| 91成人小电影| 五月婷婷中文版| 熟妇人妻中文AV无码| 豆花精品视频| 蜜桃视频在线入口www| 亚洲去干网| 久久一卡二卡| 日本操鸡小视频| 波多野结衣视频一区| 奶头和荫蒂添的好舒服囗交漫画| 69福利网| AV天堂影视在线观看| 天天天天天天天天操| 黄色成人网站在线观看| 午夜天堂精品久久久| 免费中文字幕日韩欧美| 亚洲日韩三级| 柠檬福利第一导航| 欧美成人自拍视频| 中文字幕免费在线看一区七区| 粗长哭叫打桩H体育生| 欧美视频一区| 国产视频黄| 韩国精品久久久| 黄色高清无码视频| 中文字幕视频一区日日骚| 激情五月天导航| 天天天天天天天天干| 一道本高清无码视频| r四虎18| 成人在线免费网站| A免费观看| 中文字幕一区二区6页| 91丨PORN首页| 深夜无码| 九一无码| 亚洲精品电影| 天天中文字幕| 秋霞一区二区三区无码| 18AV在线观看| 国产乱国产乱老熟300视频| 波多野结衣在线网站| 综合视频一区| 日本一级黄色电影| 日韩中文字幕专区| 久久久精品电影| 人妻精品无码| 精品人妻一区二区三区四区不卡在| 伊人性爱网| 熟妇人妻久久中文字幕| 高清无码自拍| 高清毛片AAAAAAAAA郊外| 暗呦网一区二区三区| 9色在线| 欧美操逼逼| 日日摸夜夜| 黄色电影免费网站| 91国语对白| 草b网站| 久热精品在线观看| 亚洲中文字幕有码| 久久一级片| 丁香婷婷激情| 中文无码日本高潮喷水| www男人的天堂| 最近中文字幕中文翻译歌词| 成人久久电影| 国产91视频在线观看| 国内成人精品网站| 91精品婷婷国产综合久久| 亚洲一区无码在线观看| 学生妹一级J人片内射视频| 四季AV之日韩人妻无码| www.亚洲无码| 成人激情综合| 久热这里只有| 欧美一级内射| 无码欧美成人AAAA三区在线| 操青青| 久久久成人免费电影| 日本一区中文字幕| 日韩av在线免费观看| 337P人体美鮑高清| 毛片黄色片| 中文字幕第98页| 91麻豆视频在线观看| 丝瓜视频污APP| 久久久久久高清毛片一级| 韩国一区二区在线观看| 9999久久久久| 亚洲女人在线| 国产精品操逼网站| 久久久九九九| 国产一级a毛一级a毛视频在线网站) | 国产精品黄色| 日韩激情网站| 一级黄在线观看| 亚洲高清视频在线观看| 黄色片视频| 黄色一级片在线看| 91麻豆成人| 91精品久久久久久久久久| 国产一毛a一毛a在线观看| 天天干女人| 狠狠干综合网| 牛牛精品一区二区AV| 婷婷五月香| 日本一级黄色A片| 成人欧美一区二区三区白人| 日韩综合色| A片免费网址| TokyoKot大交乱无码| 日韩精品成人无码| 俄罗斯白嫩BBwBBwBBw91| 国产精品女人精品久久久天天| 国产精品99久久久久的广告情况| 日本韩国无码视频| 国产a一级a毛一级视频| 国产成人精品一区二区三区在线| 中文字幕黄色片| 国内免费毛片| 超碰免费在线观看| 视色网站| 狠狠做深爱婷婷久久综合一区| 超碰青娱乐| 久久AV秘一区二区三区水生| 亚洲日韩字幕| A区性愛社区| 久久久久久久免费视频| 国产一在线| 日本三级片免费| 日韩无码一级| 爽妇综合网| 在线日韩国产| 亚洲色无码人妻激情| 精品999| 日韩人妻无码电影| 国产三级偷拍| 欧美激情综合| 91精品国产99久久久久久天美 | 艹在线观看| 淫荡少妇美红久久久久久久久久| 一本一道无码免费看视频| 91看片看婬黄大片Videos| 加勒比在线视频| 狠狠狠狠操| 69福利视频| 免费av播放| 网站色色免费看| 亚洲精品视频在线播放| 不卡视频一区二区三区| 欧美日韩国产成人在线观看| 强伦轩人妻一区二区三区70后 | 天天操夜夜爽| 欧美丰满老熟妇XXXXX性| wwwwww黄| 欧美成人一区二区三区片| 中文字幕综合| 国产插逼视频| 国产精品综合| 大香蕉伊人青青草| 色色网站| 91久久视频| 色诱AV| 小黄片免费看| 男人天堂99| 老熟女乱伦| 桃色五月天| 99久久婷婷国产综合精品| 国产精品毛片一区视频播| 亚洲av免费在线观看| av在线资源网| 日韩不卡电影| 在线观看不卡av| 亚洲AVA| 国产熟妇码视频| 噜噜在线| 日韩欧美一级二级| 国产精品色色色| 久色视频福利| 精品视频| 无码秘人妻一区二区三-百度| 91九色蝌蚪91POR成人| 囯产伦精一区二区三区四区| 欧美激情视频一区二区三区不卡| 激情五月天影院| 超碰人人操在线| 黄色视频在线观看地址| 一级做a视频| 少妇做爱视频| 久久久777| 亚洲成人影片在线观看| 无码不卡中文字幕| 国产老女人操逼视频| 人人妻人人澡| 日韩中文字幕无码| 最新中文字幕免费MV第一季歌词| 青青色视频| 足交在线播放| 日韩美女做爱| 亚洲一级黄片| 都市激情亚洲| 亚洲中文字幕一| BBB搡BBB搡BBB搡BBB | 成人精品一区二区三区中文字幕| 欧美麻豆| 色婷婷AV在线观看| 2012天天夜夜| 第一页在线| 亚洲免费网| 俺去草| 大香蕉网伊人在线| 你懂的在线免费观看| 青娱乐国产精品| 国产福利视频| 大鸡巴在线观看| 国产精彩视频| 亚洲成色A片77777在线小说| 国产美女做爱视频| 国产影视av| 久久久少妇| 久久精品亚洲| 成人黄色A片| 亚洲五月婷| 激情五月在线| 日韩中文无码字幕| 91免费福利视频| 99r6热只有精品免费观看| 午夜午夜福利理论片在线播放| 东京热免费视频| 一级A片免费观看| 99久久国| 亚洲色久悠悠| 人人免费操| 三级大香蕉| 97免费在线观看视频| 一区二区三区三级片| 亚洲免费精品视频| 国产精品自拍视频| 91乱子伦国产乱子伦!| 69国产| 超碰人人爽| 谁有毛片网址| 在线观看视频国产| 欧美三级欧美三级三级| 97人妻一区二区精品免费视频| 91精品老司机| 成人一区二区三区| 一区视频| 午夜福利大片| 欧美熟妇精品黑人巨大一二三区| AV日韩无码| 精品一区二区三区视频| 亚洲在线无码| 男人的天堂网页| 国产婬片lA片www777| 天天干天天射天天| 国产乱国产乱老熟300视频| 制服丝袜无码| 国产黄色一级片| 黄色片免费在线观看| 色噜噜av| 偷拍视频网站| 国产黄色视频免费| 亚洲日本高清| 国产在线观看免费| 自拍视频网| 国产又爽又黄免费网站在| 天天色粽合合合合合合合| 蜜桃免费| 艹在线观看| AV无码人妻| 国产在线内射| 亚洲天堂在线观看网站| 亚洲国产黄片| 女神思瑞精品一区二区三区| av在线资源| 人人爽人人爽| 亚洲美女视频| 无码人妻一区二区| 外国一级片| 亚洲女人被黑人巨大进入| 亚洲免费观看高清完整版在va线观 | 无码精品成人观看A片| 就要干就要操| 日韩AV中文字幕在线播放| 骚逼免费观看| 丝袜久久| 国精品无码人妻一区二区三区 | 日本久久网| 亚洲视频一区二区| 婷婷色婷婷| 亚洲AV第二区国产精品| 亚洲九九九九| 91人妻人人操人人爽| 果冻传媒一区二区三区| 午夜无码AV| 91人妻无码成人精品一区二区| 91人妻无码精品一区二区| 成人国产精品视频| 天天爽天天射| 无码AⅤ一区二区三区| 狠狠操狠狠撸| 色九| 欧美毛片A| 大鸡巴久久久| 天天日天天射天天干| 日韩精品视频在线免费观看| 成人做爰黄AAA片免费直播岛国| 色xxxx| 中文字幕第二页| 欧美毛片A| 成人在线精品视频| 大香蕉一级片| 精品国产91| 中文无码熟妇人妻AV在线| 欧美一二三区| 亚洲高清无码在线| 亚洲AV无码专区一级婬片毛片 | 一道本视频在线| 精品国产精品国产精品国产网站| 五月婷婷啪| 干干影院| 操美女的网站| 久久精品婷婷| 亚洲色图欧美| 日逼视频网| 日韩中文字幕av在线| 91搞| 欧美二区三区| 99久久精品国产一区二区成人| 七六十路の高齢熟妇无码| 亚洲国产精品午夜福利| 男人天堂色| 国产A片免费| 欧美日韩99| 中文在线字幕电视剧免费平台| 免费在线观看毛片| 91无码在线观看| 青草福利| 国产成人+综合亚洲+天堂| 色人阁人妻中文字幕| 中文字幕日本电影| 亚洲午夜福利一区二区三区| 黄色成人网站大全| 不卡日本| 91欧美精品成人综合在线观看| 91视频网站免费| 久久九九热| 狠狠插狠狠操| 午夜精品电影| 日韩超碰在线| 国产欧美一区二区三区在线看蜜臀 | AV网站入口| 色色色91| 日韩熟妇人妻中文字幕| 一级AAAAA片裸体做受| 天天搞天天干| aaa国产| 99久久婷婷国产综合精品漫| 啪啪视频最新地址发布页| 精品午夜福利| 老司机免费视频| 亚洲国产精品视频| 国产日逼视频| 大香蕉免费中文| 99久久人妻精品免费二区| 国产精品嫩草久久久久yw193| 成av人片一区二区三区久久| 麻豆自拍偷拍视频| 在线观看黄色网| 69看片| 理论片熟女奶水哺乳| 操逼逼网| 乱伦无码高清麻豆视频一区二区 | jizz久久| 精品国产午夜福利在线观看| 欧美三级片在线视频| 午夜无码熟妇丰满人妻| caobi视频| 亚洲美眉综合网| 日韩aaaa| 一本久道视频一本久道| 国产三级精品三级在线观看| 91在线一区二区三区| 苍井空一区二区三区| 亚洲精品456| 中文字幕精品在线| 色色欧美视频| 国产精品国产三级片| 青青青国产在线| 囯产一级a一级a免费视频| 黄色99| 日本丰满老熟妇乱子伦| 人妻熟女字幕一区二区| 91内射| 色色视频免费看| 亚洲天堂在线免费观看视频| 免费在线观看AV网站| 国产黄色视频在线观看免费| 北条麻妃无码播放| 日韩成人中文字幕| 女侠吕四娘第二部| 国产一级特黄| 国内超碰| 久久艹久久| 久久久成人免费电影| 操逼视频在线免费观看| 柒私黄片| 东京热观看| 久久成人在线| 中文字幕精品人妻| 日韩免费在线观看视频| 免费在线观看黄色视频网站| 日韩视频一级| 香蕉中文网| h片免费网站| 亚洲一区二区在线视频| 韩国高清无码视频| www.日韩| 日区无码| 91高清无码视频| 熟女少妇一区二区三区| 国产乱国产乱300精品| 免费黄色成人网站| 日本肏逼视频| 午夜丁香婷婷| 思思热思思操| 久久成人综合| 偷拍三区| 日本三级久久| 欧美在线亚洲| 精品无码三级在线观看视频| 成人午夜福利电影| 亚洲一级黄色电影| 国产小视频免费在线观看| 欧美一级黃色A片免费看蜜桃熟了| 91激情网| 日本91视频| 北条麻妃无码| 婚闹不堪入目A片| 久久久69| 久久久久久久久久8888| 亚洲成人网站在线| 黑人粗暴偷拍一区二区| 热久久国产| NP玩烂了公用爽灌满视频播放| 欧美成人午夜| 国产福利视频在线观看| 日韩av中文字幕在线播放| 欧美视频h| 操欧美美女| 亚洲第一影院| 亚洲wwwwww| 成人午夜啪免费视频在线观看软件 | 日日艹夜夜艹| 国产精品av在线| 天天操操操| 久久精品三级视频| 中文字幕亚洲视频在线观看| 91九色视频| 亚洲综合无码| 日韩AV免费在线播放| 久久公开视频| 亚洲天堂成人网| 久久一区| 日韩一区二区在线看在线看| 大香蕉在线看| 综合五月| 久久亚洲中文字幕乱码| 韩国一级AV| 精品无码三级在线观看视频| 亚洲无码福利视频| 俺来也俺去啦欧美www| 中文字幕36页| 亚洲1区2区| 蜜桃av秘无码一区三区四| 超碰二区| 日韩无码免费电影| 日逼综合| 欧美成人图片视频在线| 日皮视频| 在线观看免费国产| 国产三级片网址| 国产精品成人69| 精品少妇人妻一区二区| 69国产| 高清无码学生妹| chinese高潮老女人| 亚洲精品久久久久久久久豆丁网 | 五月天婷婷在线观看视频| 高清无码专区| 成人黄片18| 最新久欠一区二区免费看| 逼逼视频| 人人妻人人爱人人操| 高清无码免费| AV电影一区| 麻豆性爱视频| 无码内射视频| 国产精品免费一区二区三区四区视频 | 精品一二三| 青草影视久久| 日批无码| 国产精品二区高清在线苍井空| 欧美三级在线播放| 日本熟妇在线| 男人在线天堂| 国产一区二区不卡| 91人人妻人人妻人人澡| 中文电视剧字幕在线播放免费视频 | 91麻豆影院| 伊人成人视频在线观看| 四虎在线免费视频| 操人网站| 人人操AV在线| 91网站在线观看视频| 亚洲国产成人综合| 国产精品伦理| 午夜三区| 成人三级AV| 色色色999| 中文字幕无码成人| 91偷拍视频| 国产成人精品毛片| 在线观看中文字幕AV| 婷婷色色五月天| 岛国免费视频| 加勒比无码在线播放| 蜜桃91精品秘入口| 丁香五月综合啪啪| 水蜜桃在线观看视频| 99re欧美激情| 国产女人高潮毛片| 国产无码成人免费| 久草视频在线免费| 亚洲天堂手机在线| 亚洲人BBwBBwBBWBBw| 激情五月天色色| 日韩无码精品电影| 中文字幕AV在线| 成av人片一区二区三区久久| 91麻豆影院| 热无码av| 99精品全国免费观看| 黄色片在线免费观看| 亚洲少妇性爱视频|