精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JUnit 5系列之架構(gòu)體系介紹

開(kāi)發(fā) 架構(gòu)
現(xiàn)在,我們已經(jīng)知道了 如何配置 JUnit 5 環(huán)境 及 如何寫(xiě)一些測(cè)試,接下來(lái)就來(lái)看一點(diǎn)封面下的內(nèi)容吧。本篇我們將討論 JUnit 5 的架構(gòu)體系,以及它之成形如此的原因。

[[171833]]

現(xiàn)在,我們已經(jīng)知道了 如何配置 JUnit 5 環(huán)境 及 如何寫(xiě)一些測(cè)試,接下來(lái)就來(lái)看一點(diǎn)封面下的內(nèi)容吧。本篇我們將討論 JUnit 5 的架構(gòu)體系,以及它之成形如此的原因。

概述

本文章是這個(gè) JUnit 5 系列的一部分:

(如果不喜歡看文章,你可以戳這里看我的演講,或者看一下最近的 vJUG 講座,或者我在 DevoxxPL 上的 PPT。

本系列文章都基于 Junit 5發(fā)布的先行版 Milestone 2。它可能會(huì)有變化。如果有新的里程碑(milestone)版本發(fā)布,或者試用版正式發(fā)行時(shí),我會(huì)再來(lái)更新這篇文章。

這里要介紹的多數(shù)知識(shí)你都可以在 JUnit 5 用戶指南 中找到(這個(gè)鏈接指向的是先行版 Milestone 2,想看的***版本文檔的話請(qǐng)戳這里),并且指南還有更多的內(nèi)容等待你發(fā)掘。下面的所有代碼都可以在 我的 Github 上找到。

目錄

  • JUnit 4
  • JUnit 5

* 分離的關(guān)注點(diǎn)

* JUnit 5 的重新組織

* 架構(gòu)及體系

* API 生命周期

  • Open test alliance
  • 回顧總結(jié)
  • 分享&關(guān)注

JUnit 4

除了 Hamcrest,JUnit 4沒(méi)有任何外部依賴(lài),其所有的功能都被打包在一個(gè)構(gòu)件(artifact)中。這完全違反了單一職責(zé)原則,它被提供給開(kāi)發(fā)者、IDE、構(gòu)建工具、其他測(cè)試框架、其他擴(kuò)展等使用,不同的使用者,依賴(lài)的都是一個(gè)同樣的構(gòu)件。

而在這其中,只有開(kāi)發(fā)者能——或者說(shuō)曾經(jīng)能——以最干凈的方法來(lái)使用它。他們通常只需要 JUnit 的公共 API,不需要管其他的。非常好。

但生態(tài)圈中的其他成分則不是這樣使用 JUnit:測(cè)試框架、擴(kuò)展,特別是 IDE 和構(gòu)建工具的開(kāi)發(fā)者,他們需要深入到 JUnit 的深處,到它的細(xì)枝末節(jié):非 public 的類(lèi)、內(nèi)部 API,甚至 private 字段。它們的正常工作極大地依賴(lài)于 JUnit 的實(shí)現(xiàn)細(xì)節(jié)。這使得 JUnit 維護(hù)團(tuán)隊(duì)不能輕易地修改框架的這些內(nèi)部實(shí)現(xiàn),因此團(tuán)隊(duì)的開(kāi)發(fā)進(jìn)度受到了很大的影響。

當(dāng)然,這些工具的開(kāi)發(fā)者們也并非有意為之。為了實(shí)現(xiàn)那些我們十分喜愛(ài)的特性,他們不得不使用內(nèi)部的 API,因?yàn)?JUnit 4 并沒(méi)有提供相應(yīng)的 API:一個(gè)強(qiáng)大到足以滿足工具開(kāi)發(fā)者們需求的 API。

Junit Lambda 團(tuán)隊(duì)開(kāi)始著手于 JUnit 5 的開(kāi)發(fā),希望能讓這一切變得明朗起來(lái)。

JUnit 5

分離的關(guān)注點(diǎn)

退一步想,我們不難辨識(shí)出,這里至少有兩個(gè)不同的關(guān)注點(diǎn)需要分離:

  • 一個(gè)支持測(cè)試代碼撰寫(xiě)的 API
  • 一個(gè)識(shí)別測(cè)試、運(yùn)行測(cè)試的機(jī)制

再仔細(xì)思考一下第二點(diǎn),我們可能會(huì)問(wèn),“哪些測(cè)試?”這個(gè)當(dāng)然是指 Junit 測(cè)試。“我知道,但具體是哪些版本的測(cè)試呢?”呃…“還有,具體是指什么類(lèi)型的測(cè)試?”好吧,你讓我給你……“只能跑那些老版本的 @Test 注解的測(cè)試么?有沒(méi)有其他新的方法來(lái)運(yùn)行測(cè)試呢?……”行行行,都給我閉嘴!聽(tīng)我講著。

為了進(jìn)一步將待識(shí)別測(cè)試的類(lèi)型 與 實(shí)際運(yùn)行它們 這兩個(gè)關(guān)注點(diǎn)解耦,上面的第二點(diǎn)需要細(xì)分:

  1. 一個(gè)支持測(cè)試代碼撰寫(xiě)的 API
  2. 一個(gè)識(shí)別測(cè)試、運(yùn)行測(cè)試的機(jī)制

* 一個(gè)識(shí)別、運(yùn)行特定類(lèi)型(比如,JUnit 5測(cè)試的機(jī)制)

* 另一套協(xié)調(diào)上述機(jī)制的機(jī)制

* 上兩者之間的 API

JUnit 5 的重新的組織

識(shí)別出這兩個(gè)關(guān)注點(diǎn)以后,“作為平臺(tái)的 JUnit ”(用于運(yùn)行我們的測(cè)試)和“作為工具的 JUnit ”(用于撰寫(xiě)我們的測(cè)試)這兩個(gè)概念的分離就清晰了。為了完成這個(gè)徹底的分離,JUnit 團(tuán)隊(duì)決定將 JUnit 5 分成三個(gè)子項(xiàng)目:

JUnit Jupiter

包含了我們用于撰寫(xiě)測(cè)試的 API(關(guān)注點(diǎn)1),以及一個(gè)能理解測(cè)試代碼的引擎(關(guān)注點(diǎn)2.1)。

JUnit Platform

提供了一套統(tǒng)一的 API 以運(yùn)行測(cè)試,及基于 API 之上的一套工具(關(guān)注點(diǎn)2.2和2.3)。

JUnit Vintage

提供了一套引擎,用以在 JUnit 5 中運(yùn)行 JUnit 3 和 JUnit 4 的測(cè)試(關(guān)注點(diǎn)2.1)。

架構(gòu)與體系

JUnit 5 的架構(gòu)體系完全是遵循這個(gè)關(guān)注點(diǎn)分離思想的產(chǎn)物:

junit-jupiter-api(1)

開(kāi)發(fā)者用于撰寫(xiě)測(cè)試的 API,包含了我們?cè)贘Unit 5 的基礎(chǔ)知識(shí)一節(jié)中所提及的所有注解、斷言等。

junit-platgorm-engine(2.3)

包含了一套所有測(cè)試引擎都必須實(shí)現(xiàn)的 API。這樣,不同的測(cè)試引擎之間可以通過(guò)統(tǒng)一的接口被調(diào)用。引擎可以跑正常的 JUnit 測(cè)試,但也可以實(shí)現(xiàn)不同的引擎用以執(zhí)行其他框架寫(xiě)成的測(cè)試,如 TestNG、Spock、Cucumber 等。

junit-jupiter-engine(2.1)

junit-platform-engine API 的一個(gè)實(shí)現(xiàn),專(zhuān)門(mén)用于執(zhí)行 JUnit 5 撰寫(xiě)的測(cè)試。

junit-vintage-engine(2.1)

junit-platform-engine API 的一個(gè)實(shí)現(xiàn),專(zhuān)門(mén)用于執(zhí)行 JUnit 3 或 JUnit 4 撰寫(xiě)的測(cè)試。過(guò)去,JUnit 4 的構(gòu)件 junit-4.12 充當(dāng)了兩個(gè)角色:它既是開(kāi)發(fā)人員用于實(shí)現(xiàn)測(cè)試的 API,又包含了用以執(zhí)行測(cè)試的核心組件。這個(gè)引擎,可以認(rèn)為是低版本的 JUnit 3/4 與 JUnit 5 之間的一個(gè)適配器。

junit-platform-launcher(2.2)

這部分使用了一個(gè)服務(wù)加載器 ServiceLoader 來(lái)發(fā)現(xiàn)測(cè)試引擎,并協(xié)調(diào)不同實(shí)現(xiàn)之間的執(zhí)行。它提供了一個(gè) API 給 IDE 和構(gòu)建工具,使得它們能夠與測(cè)試執(zhí)行過(guò)程交互,比如,運(yùn)行單個(gè)的測(cè)試、搜集測(cè)試結(jié)果并展示等。

聽(tīng)起來(lái)怎樣,很酷吧。

 

這部分架構(gòu)對(duì)于我們生態(tài)鏈前端的使用者來(lái)說(shuō)基本是透明的。我們的項(xiàng)目只需要引入一個(gè)用于編寫(xiě)測(cè)試的 API 依賴(lài),其余的組件讓工具去操心即可。

API 生命周期

現(xiàn)在來(lái)說(shuō)說(shuō)那些大家都在使用的內(nèi)部 API。JUnit 5 團(tuán)隊(duì)希望這個(gè)問(wèn)題也能得到解決,為此給 JUnit 的 API 設(shè)立了生命周期。這里,我將源碼中給出的部分解釋截取于此。

內(nèi)部 API(internal)

不允許被 JUnit 開(kāi)發(fā)者之外的任何人使用。這部分 API 可能被移除,并且不會(huì)事先通知。

已過(guò)時(shí)(Deprecated)

不應(yīng)該再被使用的 API,它們可能在下次小版本發(fā)布時(shí)被移除。

實(shí)驗(yàn)階段(Experimental)

為一些新的、實(shí)驗(yàn)階段的特性所使用的 API,這些新特性可能會(huì)或已經(jīng)被公開(kāi)使用并接受反饋中。

可以使用,但要謹(jǐn)慎。這些 API 未來(lái)可能被提升至 維護(hù)中 或 穩(wěn)定 級(jí)別,但也可能不帶提前通知就被移除。

維護(hù)中(Maintained)

使用該 API 的特性,至少在該大版本的下一個(gè)小版本發(fā)布時(shí)不會(huì)發(fā)生向后不兼容的改變。如果未來(lái)有移除維護(hù)中 API 的計(jì)劃,它會(huì)先被打回到 已過(guò)時(shí) 階段。

穩(wěn)定(Stable)

使用該 API 的特性,至少在下個(gè)大版本發(fā)布之前不會(huì)發(fā)生向后不兼容的改變。

JUnit 對(duì)外公開(kāi)的類(lèi)都帶有一個(gè) @API(usage) 注解,其中 usage 是上面幾個(gè)值中的其中一個(gè)。團(tuán)隊(duì)希望這能給 API 的調(diào)用方以充足的信息,即他們所使用的 API 處于什么生命周期中,同時(shí),也希望給每個(gè)團(tuán)隊(duì)以自由,讓他們決定是否改變或移除過(guò)時(shí) API 。

Open Test Alliance

其實(shí)還有一件事。Junit 5 的體系結(jié)構(gòu)使得 IDE 和構(gòu)建工具能夠?qū)⑵渥鳛橹虚g層,以運(yùn)行所有類(lèi)型的測(cè)試框架(前提是該框架實(shí)現(xiàn)了其對(duì)應(yīng)的引擎)。這樣的話,工具本身就不需要去實(shí)現(xiàn)框架相關(guān)的測(cè)試支持,它們只需要使用一套統(tǒng)一的借口,即可實(shí)現(xiàn)測(cè)試發(fā)現(xiàn)、測(cè)試執(zhí)行和結(jié)果收集。

是嘛,真的可以嗎?

失敗的測(cè)試,通常使用異常來(lái)描述。但不同的測(cè)試框架和斷言庫(kù)之間并無(wú)一個(gè)統(tǒng)一的接口。相反,它們通常實(shí)現(xiàn)了各自不同的版本(常見(jiàn)的是繼承 AssertionError 或 RuntimeException )。這就使得不同框架間的互操作變得更加復(fù)雜,也使得工具之間無(wú)法簡(jiǎn)單使用一套統(tǒng)一的接口。

為了解決這個(gè)問(wèn)題,Junit Lambda 團(tuán)隊(duì)又分出來(lái)一個(gè)獨(dú)立的項(xiàng)目,The Open Test Alliance for the JVM。這是它們的提議:

基于 JUnit Lambda 團(tuán)隊(duì)近來(lái)與來(lái)自Eclipse、Gradle 及 Intellij 等 IDE 和構(gòu)建工具開(kāi)發(fā)者所展開(kāi)的討論,我們呼吁要建立這樣一個(gè)開(kāi)源項(xiàng)目:它用于提供一套基于 JVM的 測(cè)試庫(kù)與測(cè)試框架 間的最小公共接口集。

項(xiàng)目主要目標(biāo)是,為各測(cè)試框架(如 JUnit、TestNG、Spock 等)和三方斷言庫(kù)(Hamcrest、Assert 等)提供一個(gè)公共的異常集合。有了這個(gè)集合,IDE 和構(gòu)建工具就可以一個(gè)統(tǒng)一的接口對(duì)所有測(cè)試過(guò)程——如對(duì)失敗斷言、失敗假言判定的處理、對(duì)測(cè)試執(zhí)行過(guò)程的可視化、在 IDE 中生成測(cè)試結(jié)果報(bào)告等——進(jìn)行處理。

截止目前,該項(xiàng)目的呼吁似乎并未引起太多重視,或說(shuō)是基本未得到重視。如果你覺(jué)得這是個(gè)好的想法,你可以通過(guò)一些方式來(lái)支持,比如向你經(jīng)常使用的測(cè)試框架維護(hù)者發(fā)出聲音。

回顧總結(jié)

本篇我們介紹了 JUnit 5 的架構(gòu)設(shè)計(jì),它將原有的 API 分成了兩部分:編寫(xiě)測(cè)試部分的 API 和 執(zhí)行測(cè)試的引擎。這個(gè)引擎進(jìn)一步地被切分成三個(gè)部分:一個(gè)解析測(cè)試代碼的 API、一個(gè)測(cè)試執(zhí)行器(launcher),和一些支持不同測(cè)試框架的引擎實(shí)現(xiàn)。這樣開(kāi)發(fā)者只需要為項(xiàng)目引入 API 部分的依賴(lài)(用于編寫(xiě)測(cè)試),而測(cè)試框架的開(kāi)發(fā)者們則只需要實(shí)現(xiàn)引擎部分的 API(其他工作已經(jīng)由 JUnit 處理了),構(gòu)建工具方面也只需要實(shí)現(xiàn) launcher API以協(xié)調(diào)測(cè)試執(zhí)行。

責(zé)任編輯:龐桂玉 來(lái)源: segmentfault
相關(guān)推薦

2016-09-23 10:34:32

JUnitGradleAgile

2016-09-23 10:20:22

JUnit擴(kuò)展模型Extension

2019-09-24 13:41:22

Hadoop面試分布式

2022-02-19 07:41:36

Bean注解項(xiàng)目

2022-02-20 07:28:13

Spring注解用法

2023-09-21 07:06:17

PSDriveProvider

2024-01-03 07:57:11

高級(jí)參數(shù)PowerShellVerbose 參數(shù)

2009-09-14 09:11:13

CCIE考試體系介紹CCIE

2012-07-30 13:15:58

EVB

2009-09-15 09:46:04

思科認(rèn)證體系CCNACCNP

2012-07-23 16:18:52

Linux集群HPC架構(gòu)

2017-04-24 12:07:44

Spark大數(shù)據(jù)并行計(jì)算

2023-04-27 10:50:23

2010-04-23 09:13:05

Oracle體系結(jié)構(gòu)

2019-07-01 12:55:05

安全體系架構(gòu)網(wǎng)絡(luò)安全企業(yè)安全

2016-09-04 14:00:31

Spark

2023-06-02 08:16:14

MySQL體系架構(gòu)

2009-03-26 19:38:05

四核英特爾服務(wù)器

2009-02-05 11:07:27

Sybase SQL SybaseSQL Server

2017-08-03 14:01:07

大數(shù)據(jù)深度學(xué)習(xí)體系結(jié)構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久精品视频8| 日韩av影视大全| 1区2区3区在线观看| 精品一区二区免费视频| 草民午夜欧美限制a级福利片| 绯色av蜜臀vs少妇| 精品国产第一福利网站| 国产精品国产三级国产| 国产精品三区在线| 中文文字幕一区二区三三| 亚洲欧美亚洲| 亚洲性线免费观看视频成熟| 人妻体体内射精一区二区| 午夜激情电影在线播放| 亚洲美女偷拍久久| 欧美福利精品| 亚洲爱情岛论坛永久| 久久久久久黄| 色综合色综合久久综合频道88| 丝袜美腿中文字幕| 成人国产精品| 午夜精品久久久久久久久久| 一区二区精品免费视频| 亚洲三级中文字幕| 国产精品亚洲人在线观看| 国产成人精品日本亚洲| 日本在线视频中文字幕| 久久精品影视| 一本色道久久综合狠狠躁篇怎么玩 | 欧美视频四区| 中文字幕亚洲专区| 爱爱免费小视频| 国产劲爆久久| 欧美成人在线直播| 在线观看日本www| 精品视频在线一区二区在线| 天天色综合成人网| 真人做人试看60分钟免费| h视频网站在线观看| 26uuu色噜噜精品一区二区| 国产精品一区二区三区免费观看 | 玖玖爱这里只有精品| 国产精品中文字幕亚洲欧美| 亚洲精品中文字幕av| 久久久久久久人妻无码中文字幕爆| 国产亚洲高清一区| 在线不卡免费欧美| 国产日韩欧美久久| 久久精品国产福利| 91成人在线免费观看| 无码人妻h动漫| 日韩影院在线| 欧美午夜xxx| 日本一区二区黄色| 制服丝袜专区在线| 色综合久久88色综合天天| 欧美爱爱视频免费看| 蜜桃麻豆影像在线观看| 黑人极品videos精品欧美裸| 日本一道本久久| 国产高潮在线| 在线亚洲精品福利网址导航| 免费大片在线观看| 精品美女一区| 日韩欧美成人一区二区| 国产女主播在线播放| 欧美成人一区在线观看| 日韩av在线免费| 日韩在线免费观看av| 日韩成人激情| 欧美成人精品h版在线观看| 久久久久成人精品无码| 雨宫琴音一区二区在线| 国产脚交av在线一区二区| 亚洲精品无码久久久久| 加勒比av一区二区| 不卡视频一区二区三区| 视频三区在线观看| 欧美国产日产图区| 久久精品在线免费视频| 丰满的护士2在线观看高清| 午夜成人免费视频| 日本成人中文字幕在线| 主播大秀视频在线观看一区二区| 欧美日韩国产高清一区二区 | 无码人妻久久一区二区三区 | 免费日韩av片| 国产一区二区在线免费视频| 成人免费视频国产| 久久精品视频一区二区| 干日本少妇视频| 美女av在线免费看| 欧美精品三级在线观看| 日本不卡视频一区| 日韩一区二区在线| 午夜精品久久久久久久99热浪潮| 欧美bbbbbbbbbbbb精品| 美女尤物国产一区| 精品国产乱码一区二区三区四区| 啊v在线视频| 亚洲国产精品影院| 亚洲77777| 日本福利一区| 免费成人高清视频| 在线观看国产区| 成人免费高清在线观看| 亚洲一区二区三区四区中文| 福利写真视频网站在线| 欧美老年两性高潮| 欧洲美一区二区三区亚洲| 国产精品mv在线观看| 国产精品成人国产乱一区| 亚洲精品国产精| 国产精品女人毛片| 日本一本二本在线观看| 欧美电影院免费观看| 在线视频一区二区| 黄色片视频网站| 国产制服丝袜一区| 色综合久久av| 久久uomeier| 日韩av网站在线| 唐朝av高清盛宴| 久久成人综合网| 日韩精品电影网站| 中文字幕乱码中文乱码51精品| 日韩视频在线观看一区二区| 精品人妻中文无码av在线| 亚洲少妇在线| 国产精品露出视频| 亚洲大胆人体大胆做受1| 欧美日韩性生活| 卡一卡二卡三在线观看| 久久精品导航| 免费日韩电影在线观看| 免费h视频在线观看| 精品国产91洋老外米糕| 久操免费在线视频| 国产成a人亚洲| www.-级毛片线天内射视视| 九七电影院97理论片久久tvb| 亚洲欧美日韩国产中文专区| 99热只有这里有精品| av一区二区三区四区| 男人的天堂狠狠干| 成人中文字幕视频| 午夜精品一区二区三区在线视频| 亚洲毛片欧洲毛片国产一品色| 亚洲免费在线播放| 中文字幕无码毛片免费看| 欧美 亚欧 日韩视频在线| 亚洲www在线观看| 在线视频国产区| 日韩区在线观看| 久草免费新视频| 本田岬高潮一区二区三区| 欧美又粗又长又爽做受| 久久影院资源站| 2019日本中文字幕| 九九九伊在人线综合| 欧美亚洲国产一区二区三区| 亚洲欧美日韩第一页| 精品一区二区国语对白| avove在线观看| 中文字幕一区二区三区四区久久| 久久久久这里只有精品| 天堂а√在线8种子蜜桃视频| 欧美日韩亚洲网| 蜜桃传媒一区二区亚洲| 久99久精品视频免费观看| 永久免费网站视频在线观看| 国产主播性色av福利精品一区| 欧美最猛性xxxxx(亚洲精品)| 国产视频网站在线| 777a∨成人精品桃花网| 久久精品国产亚洲av麻豆色欲| 91免费视频观看| 99热一区二区| 黑丝一区二区三区| 日本高清一区| 影音先锋欧美激情| 日av在线播放中文不卡| 五月婷婷在线视频| 精品国产一区二区三区久久影院| 丰满人妻老熟妇伦人精品| 中文字幕一区二区三区蜜月| 欧美性生交xxxxx| 日韩中文字幕亚洲一区二区va在线| 四虎影院一区二区| 欧美人妖视频| 91久久精品在线| 日韩av影片| 欧美成人合集magnet| 亚洲人成色777777精品音频| 欧美日韩亚洲综合在线 | 老鸭窝亚洲一区二区三区| 亚洲一一在线| 牛牛视频精品一区二区不卡| 国产美女高潮久久白浆| а√天堂中文资源在线bt| 中文字幕九色91在线| 亚洲免费成人网| 欧美日韩视频在线一区二区 | 欧美色中文字幕| 精品肉丝脚一区二区三区| 日本一区二区三区国色天香| 亚洲香蕉中文网| 韩国理伦片一区二区三区在线播放| 男人日女人下面视频| 久久久久国产| 日韩午夜视频在线观看| 精品精品国产三级a∨在线| 成人伊人精品色xxxx视频| 三上悠亚激情av一区二区三区| 欧美激情极品视频| 欧美午夜电影一区二区三区| 亚洲美女久久久| 日本xxxxxwwwww| 欧美一区二区三区四区在线观看 | 亚洲欧洲免费无码| 免费看成人吃奶视频在线| 国产精品初高中精品久久| 国产精品亚洲综合在线观看| 国产精品久久视频| 电影一区二区三| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 国产一区二区精品久久99| 成人中文字幕av| 久久精品女人| 精品99在线视频| 在线亚洲伦理| 国产精品va无码一区二区| 亚洲激情不卡| 成人免费观看cn| 亚洲国产高清一区| 国产色一区二区三区| 亚洲视频久久| 少妇人妻大乳在线视频| 欧美精品大片| 妺妺窝人体色www看人体| 伊人成综合网| 超级碰在线观看| 中文字幕av亚洲精品一部二部| 最新中文字幕久久| 亚洲人metart人体| 玖玖精品在线视频| 欧美在线资源| 欧美极品少妇无套实战| 欧美视频四区| 91专区在线观看| 国产精品主播| 国产一区二区在线免费播放| 蜜桃av一区二区在线观看| 天天干天天操天天做| 久久99精品久久久久| 成人黄色一级大片| 国产高清在线精品| 东京热av一区| 久久夜色精品国产欧美乱极品| 精品成人av一区二区三区| 国产欧美日韩麻豆91| 我要看一级黄色录像| 亚洲免费视频成人| 日干夜干天天干| 一本高清dvd不卡在线观看 | 欧美一级精品在线| 免费观看黄色一级视频| 亚洲精品视频在线观看视频| 国产青青草在线| 久久九九亚洲综合| 超碰在线中文字幕| 日韩美女中文字幕| 99亚洲男女激情在线观看| 92看片淫黄大片看国产片| 黑人久久a级毛片免费观看| 欧美激情论坛| 五月天久久网站| 老太脱裤子让老头玩xxxxx| 日韩福利视频导航| 亚洲视频天天射| 久久久99精品免费观看不卡| 麻豆天美蜜桃91| 狠狠躁18三区二区一区| 亚洲综合网av| 亚洲国产精久久久久久| 午夜激情在线观看| 性欧美视频videos6一9| jizz亚洲女人高潮大叫| 丁香五月网久久综合| 欧美综合在线视频观看| 国产 欧美 日韩 一区| 日韩成人dvd| 久久精品无码专区| 久久久久久久综合| 91视频免费在线看| 欧美午夜在线观看| 日本高清视频免费看| 日韩中文理论片| 丝袜诱惑一区二区| 亚洲v日韩v综合v精品v| 亚洲素人在线| 蜜臀精品一区二区| 精品综合久久久久久8888| av无码一区二区三区| 亚洲精品成a人| 中文字幕+乱码+中文乱码91| 亚洲激情免费观看| 成人av福利| 国产精品日韩欧美大师| 免费看成人人体视频| 久久最新免费视频| 青草国产精品久久久久久| 欧美熟妇精品一区二区蜜桃视频| 国产精品成人一区二区艾草| 国产 欧美 日韩 在线| 日韩一级免费一区| 欧洲日本在线| 国产精品网站大全| 国产不卡一区| 99色精品视频| av中文一区二区三区| 久艹视频在线观看| 91精品国产综合久久久久久| 午夜不卡视频| 国产精品成人久久久久| 国产a久久精品一区二区三区| 香港三级韩国三级日本三级| 成人国产精品免费观看动漫 | 亚洲精品国产成人影院| 国产小视频精品| 国产精品无码永久免费888| 久久这里只有精品9| 亚洲人成网站在线播| 国产高清不卡| 久久综合福利| 久久一区视频| 国产中年熟女高潮大集合| 色8久久精品久久久久久蜜| 你懂的在线播放| 人九九综合九九宗合| 欧美美女在线观看| 激情婷婷综合网| 欧美国产综合一区二区| 91丨九色丨海角社区| 伊人久久五月天| 成人国产一区| 中文字幕一区综合| 激情五月播播久久久精品| 91嫩草丨国产丨精品| 日韩三级中文字幕| 欧美aaa免费| 久久国产主播精品| 久久一区中文字幕| 日本视频在线免费| 欧美一区二区三区婷婷月色| 美女精品视频| 久久综合一区| 日韩精品一级二级| 日本中文在线视频| 精品国产一二三| 97超碰免费在线| 欧美日产一区二区三区在线观看| 久久久久在线| 蜜桃视频最新网址| 欧美xxxx老人做受| 最新中文字幕在线播放| 午夜欧美一区二区三区免费观看| 九九精品视频在线看| 国产一级片视频| 精品视频偷偷看在线观看 | 成人高清在线观看| 亚洲欧洲日本mm| 亚洲精品乱码久久久久久久久久久久| 欧美视频一区二区三区在线观看| av电影免费在线观看| 国内精品**久久毛片app| 日韩精品乱码免费| 国产真实乱在线更新| 精品视频久久久久久| 国产高清亚洲| 国产99久久九九精品无码| 国产精品久久久久桃色tv| 黄色一级a毛片| 国产精品精品视频| 影音先锋久久精品| 日本高清www| 日韩三级免费观看| 欧美极品免费| 高清无码一区二区在线观看吞精| 久久亚洲私人国产精品va媚药| 97在线公开视频| 2019亚洲日韩新视频| 欧美 日韩 国产 一区| 国产精品国产三级国产专业不| 日韩欧美黄色影院| 小明成人免费视频一区| www精品久久| 亚洲欧美在线观看| 国产在线视频网| 国产精品久久久久久久久婷婷|