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

來,加入前端自動(dòng)化單元測(cè)試

開發(fā) 測(cè)試 自動(dòng)化
最近閑來無事,開始摸索前端單元測(cè)試。一是不備之需,二是確實(shí)在實(shí)際項(xiàng)目中能夠用到單元測(cè)試。這樣可以提高開發(fā)效率,提升代碼質(zhì)量,完全可以單獨(dú)對(duì) JS 進(jìn)行測(cè)試,無需頁(yè)面,不依賴其他第三方。

 [[172272]]

最近閑來無事,開始摸索前端單元測(cè)試。一是不備之需,二是確實(shí)在實(shí)際項(xiàng)目中能夠用到單元測(cè)試。這樣可以提高開發(fā)效率,提升代碼質(zhì)量,完全可以單獨(dú)對(duì) JS 進(jìn)行測(cè)試,無需頁(yè)面,不依賴其他第三方。

為什么需要單元測(cè)試

在這里首先需要知道單元測(cè)試的目的及結(jié)果:

  • 使代碼健壯,質(zhì)量高,兼容各種臨界點(diǎn);
  • 減少 QA 測(cè)試報(bào)告的反饋,提高自我影響力;
  • 保證代碼的整潔清晰。

如果需要刨根問底追究為什么需要進(jìn)行單元測(cè)試,那我們可以開始講講實(shí)際項(xiàng)目開發(fā)中遇到的一些問題:

  • QA 不斷反饋代碼有 BUG (此時(shí)你正在投入的開發(fā),然后被打擾...);
  • 代碼出現(xiàn) BUG,疊加代碼修復(fù) BUG(代碼越來越難維護(hù)...);
  • 已經(jīng)開發(fā)完成一個(gè)模塊,但是沒有頁(yè)面提供調(diào)試測(cè)試;
  • 你開發(fā)完成的功能,每次都有許多細(xì)小的 BUG(個(gè)人影響力下降...)。

好了,列舉了這么多原因,相信你也開始心虛了,回去繼續(xù)搬磚檢查檢查代碼有沒有問題,如果你面色從容,大神,請(qǐng)手下我的膝蓋。

總結(jié):?jiǎn)卧獪y(cè)試的目的只有一個(gè),用來確定是否適合使用

如何進(jìn)行單元測(cè)試

如果明白了為什么要進(jìn)行單元測(cè)試,相信你已經(jīng)可以開始著手為自己的代碼寫一些單元測(cè)試代碼。測(cè)試從字面理解就是檢驗(yàn),看對(duì)象是否達(dá)標(biāo),達(dá)標(biāo)就是 pass,不達(dá)標(biāo)就是 fail。產(chǎn)品有這樣一個(gè)需求,如果結(jié)果是 3 達(dá)到目標(biāo)且返回的為有效的數(shù)字類型才可以進(jìn)行比較,下面看個(gè)栗子: 

  1. /** 
  2.  * 獲取 a 除以 b 的結(jié)果 
  3.  * @param  {[Number]} a [數(shù)字] 
  4.  * @param  {[Number]} b [數(shù)字] 
  5.  * @return {[Number]}   [結(jié)果數(shù)字] 
  6.  */ 
  7. function division(a, b) { 
  8.     return a / b; 
  9.  
  10. // 測(cè)試代碼 
  11. function test() { 
  12.     var result = division(6, 2); 
  13.      
  14.     if (result === 3) { 
  15.         console.log('pass'); 
  16.     } else { 
  17.         console.log('fail'); 
  18.     } 
  19.  

咋一看上面的代碼沒什么問題,可以滿足產(chǎn)品的需求,但是問題來了,如果 b 為 0,這個(gè)模塊就出現(xiàn)了 BUG,同時(shí)如果下次需要達(dá)到其他的值就算通過,那就得去修改測(cè)試代碼,這樣的測(cè)試代碼本身也太不健全。于是乎有了下面的方式: 

  1. /** 
  2.  * 獲取 a 除以 b 的結(jié)果 
  3.  * @param  {[Number]} a [數(shù)字] 
  4.  * @param  {[Number]} b [數(shù)字] 
  5.  * @return {[Number]}   [結(jié)果數(shù)字] 
  6.  */ 
  7. function division(a, b) { 
  8.  
  9.     if (b === 0) { 
  10.         return 0; 
  11.     } else { 
  12.         return a / b; 
  13.     } 
  14.  
  15. function test(name, result, expect) { 
  16.  
  17.     if (result === expect) { 
  18.         console.log(name + '-> pass'); 
  19.     } else { 
  20.         console.log(name + '-> fail'); 
  21.     } 
  22. test('normal number', division(6, 2), 3); 
  23. test('zero', division(6, 0), 0);  

如果需要期望值為 10 就通過,那可以這樣: 

  1. test('normal number is 10', division(20, 2), 10); 

單元測(cè)試環(huán)境搭建及代碼示例

但是隨著前端迅速的發(fā)展,也出現(xiàn)了很多測(cè)試框架,下面我演示我在實(shí)際項(xiàng)目中使用的測(cè)試框架環(huán)境配置 karma + jasmine,對(duì)于 karma、jasmine 我就不介紹,網(wǎng)上一搜一大把介紹:

1. 安裝 node 環(huán)境

依賴于 node 作為基礎(chǔ)環(huán)境,安裝完成在控制臺(tái)運(yùn)行下面命令查看是否安裝成功。 

  1. node -v 

2. 新建目錄并通過以下命令初始化項(xiàng)目配置 package.json 

  1. npm init 

在 package.json scripts: {} 添加以下內(nèi)容: 

  1. "test""karma start karma.conf.js" 

3. 依次安裝測(cè)試框架

  1. npm install karma -g 
  2. npm install jasmine --save-dev 
  3. npm install karma-jasmine --save-dev 
  4. npm install karma-chrome-launcher --save-dev 
  5. npm install jasmine-core --save-dev  

或者一次性安裝 

  1. npm install karma -g 
  2.  
  3. npm install jasmine karma-jasmine karma-chrome-launcher jasmine-core --save-dev  

運(yùn)行以下命令新建 karma.conf.js(根目錄下不是必須) 

  1. karma init 

文件內(nèi)容及說明: 

  1. /** 
  2.  * karma 自動(dòng)化測(cè)試參數(shù)配置 
  3.  */ 
  4.  
  5. module.exports = function(config) { 
  6.     config.set({ 
  7.  
  8.         // 基礎(chǔ)路徑,用在files,exclude屬性上 
  9.         basePath: ''
  10.  
  11.         // 可用的測(cè)試框架: https://npmjs.org/browse/keyword/karma-adapter 
  12.         frameworks: ['jasmine'], 
  13.  
  14.         // 需要加載到瀏覽器的文件列表 
  15.         files: [ 
  16.             './src/**/*.js'
  17.             './test/unit/specs/*.spec.js' 
  18.         ], 
  19.  
  20.         // 排除的文件列表 
  21.         exclude: [ 
  22.             'karma.conf.js' 
  23.         ], 
  24.  
  25.         // 在瀏覽器使用之前處理匹配的文件 
  26.         // 可用的預(yù)處理: https://npmjs.org/browse/keyword/karma-preprocessor 
  27.         preprocessors: {}, 
  28.  
  29.         // 使用測(cè)試結(jié)果報(bào)告者 
  30.         // 可能的值: "dots""progress" 
  31.         // 可用的報(bào)告者: https://npmjs.org/browse/keyword/karma-reporter 
  32.         reporters: ['progress'], 
  33.  
  34.         // web server port 
  35.         port: 9876, 
  36.  
  37.         // 啟用或禁用輸出報(bào)告或者日志中的顏色 
  38.         colors: true
  39.  
  40.         /** 
  41.          * 日志等級(jí) 
  42.          * 可能的值: 
  43.          * config.LOG_DISABLE //不輸出信息 
  44.          * config.LOG_ERROR    //只輸出錯(cuò)誤信息 
  45.          * config.LOG_WARN //只輸出警告信息 
  46.          * config.LOG_INFO //輸出全部信息 
  47.          * config.LOG_DEBUG //輸出調(diào)試信息 
  48.          */ 
  49.         // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
  50.         logLevel: config.LOG_INFO, 
  51.  
  52.         // 啟用或禁用自動(dòng)檢測(cè)文件變化進(jìn)行測(cè)試 
  53.         autoWatch: true
  54.  
  55.         // 測(cè)試啟動(dòng)的瀏覽器 
  56.         // 可用的瀏覽器: https://npmjs.org/browse/keyword/karma-launcher 
  57.         browsers: ['Chrome'], 
  58.  
  59.         // 開啟或禁用持續(xù)集成模式 
  60.         // 設(shè)置為true, Karma將打開瀏覽器,執(zhí)行測(cè)試并***退出 
  61.         singleRun: false
  62.  
  63.         // 并發(fā)級(jí)別(啟動(dòng)的瀏覽器數(shù)) 
  64.         concurrency: Infinity, 
  65.  
  66.         // 依賴插件 
  67.         plugins: [ 
  68.             'karma-chrome-launcher'
  69.             'karma-jasmine' 
  70.         ] 
  71.     }) 
  72.  

5. 新建源代碼及測(cè)試代碼目錄,目錄結(jié)構(gòu)如下: 

  1. project 
  2.     - node_modules 
  3.         - *(node 模塊) 
  4.     - src 
  5.         - FQA 
  6.             - index.js 
  7.     - test 
  8.         - unit 
  9.             - specs 
  10.                 - *.spec.js 
  11.     - karma.conf.js 
  12.     - package.json  

6. 測(cè)試代碼

。index.js 源碼 

  1. /** 
  2.  - test map method callback and parseInt param use 
  3.  - @return {[Array]} [Array] 
  4.  */ 
  5. function checkMap() { 
  6.     var nums = ['1''2''3']; 
  7.  
  8.     return nums.map(parseInt); 
  9.  
  10. /** 
  11.  - test null is Object,and common object is same 
  12.  - @return {[Array]} [Array] 
  13.  */ 
  14. function typeofAndInstanceOf() { 
  15.     var result = []; 
  16.     result.push(typeof null); 
  17.     result.push(null instanceof Object); 
  18.  
  19.     return result; 
  20.  
  21. /** 
  22.  - 檢測(cè)操作符優(yōu)先級(jí) 
  23.  - @return {[string]} [返回字符串] 
  24.  */ 
  25. function checkOperators() { 
  26.     var result = 'autoTest'
  27.     result = 'Value is ' + (result === 'autoTest') ? 'Something' : 'Nothing'
  28.  
  29.     return result; 
  30.  

。fqa.spec.js 測(cè)試代碼 

  1. /** 
  2.  - test index.js checkMap method 
  3.  - detail: 
  4.  -     parseInt(val, base), base is 2 ~ 36, otherwise value equal NaN. 
  5.  */ 
  6. describe('test map and callback parseInt'function() { 
  7.      
  8.     it('a array call map'function() { 
  9.         var nums = checkMap(); 
  10.         console.log(nums); 
  11.  
  12.         expect([1, NaN, NaN]).toEqual(nums); 
  13.     }); 
  14. }); 
  15.  
  16. /** 
  17.  - test index.js typeofAndInstanceOf method 
  18.  - detail: 
  19.  -     typeof null qeual 'object', but null instanceof Object equal false, because null Constructor not Object. 
  20.  */ 
  21. describe('test null is object'function() { 
  22.      
  23.     it('null object'function() { 
  24.         var result = typeofAndInstanceOf(); 
  25.         console.log(result); 
  26.  
  27.         expect(['object'false]).toEqual(result); 
  28.     }); 
  29. }); 
  30.  
  31. /** 
  32.  - test index.js checkOperators method 
  33.  - detail: 
  34.  -     compare operator precedence, + gt ?. 
  35.  */ 
  36. describe('test null is object'function() { 
  37.  
  38.     it('test operator preceence'function() { 
  39.         var result = checkOperators(); 
  40.         console.log(result); 
  41.  
  42.         expect('Something').toEqual(result); 
  43.     }); 
  44. });  

7. 運(yùn)行 sudo npm run test 執(zhí)行測(cè)試代碼 

  1. "scripts": { 
  2.     "test""karma start karma.conf.js" 
  3.  

結(jié)果:

 

解答

1. npm run test 運(yùn)行的實(shí)際上是 package.json 中配置的命令: 

  1. "test""karma start karma.conf.js" 

2. describe 定義測(cè)試模塊,it 測(cè)試一個(gè)單元,describe 內(nèi)部可以同時(shí)定義多個(gè) it,因此可以做一系列的單元測(cè)試,測(cè)試方法詳見官方文檔。

3. karma.conf.js 配置 files 設(shè)置測(cè)試時(shí)需要被加載的文件 

  1. files: [ 
  2.     './src/**/*.js'
  3.     './test/unit/specs/*.spec.js' 

 總結(jié) 

希望看完這篇文章,你也能夠動(dòng)起手來,開始編寫一些單元測(cè)試代碼,提高代碼的質(zhì)量,提升自己的周圍影響力。本篇文章內(nèi)容表述了實(shí)際項(xiàng)目開發(fā)中會(huì)遇到的問題,我們可以通過單元測(cè)試來減少這類問題的發(fā)生,以提高代碼的安全性,代碼的質(zhì)量,從而保證產(chǎn)品的穩(wěn)定性。點(diǎn)擊此處查看更多文章。

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

2017-01-16 13:38:05

前端開發(fā)自動(dòng)化

2009-08-19 09:00:48

單元測(cè)試框架自動(dòng)化測(cè)試

2012-03-30 15:52:51

ibmdw

2009-08-12 18:37:46

VSTS2005單元測(cè)

2016-09-21 15:35:45

Javascript單元測(cè)試

2021-06-30 19:48:21

前端自動(dòng)化測(cè)試Vue 應(yīng)用

2017-01-14 23:42:49

單元測(cè)試框架軟件測(cè)試

2021-10-12 19:16:26

Jest單元測(cè)試

2022-03-15 11:55:24

前端單元測(cè)試

2021-06-25 10:57:30

前端自動(dòng)化測(cè)試開發(fā)

2021-06-26 07:40:21

前端自動(dòng)化測(cè)試Jest

2016-09-14 21:55:33

前端測(cè)試Karma

2023-05-18 14:01:00

前端自動(dòng)化測(cè)試

2022-09-14 10:00:12

前端自動(dòng)化測(cè)試

2017-09-13 15:05:10

React前端單元測(cè)試

2017-09-10 17:41:39

React全家桶單元測(cè)試前端測(cè)試

2017-01-16 12:12:29

單元測(cè)試JUnit

2017-01-14 23:26:17

單元測(cè)試JUnit測(cè)試

2017-03-30 07:56:30

測(cè)試前端代碼

2020-08-18 08:10:02

單元測(cè)試Java
點(diǎn)贊
收藏

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

欧美一区2区视频在线观看| 国产精品国产三级国产| 欧美一级大片在线免费观看| 最近中文字幕免费视频| 久久精品 人人爱| 一区二区不卡在线播放 | 久久精品国产99国产精品澳门| 国产又粗又猛又爽又黄| 在线免费看h| 亚洲日本在线a| 久久久久久精| av中文字幕免费在线观看| 国产日韩欧美一区| 日韩天堂在线视频| 国产真实乱人偷精品| 男女啪啪999亚洲精品| 午夜精品久久久久久久久| 亚洲视频电影| 欧美巨乳在线| 国产91精品在线观看| 国产精品www色诱视频| 久久久久无码精品国产| 日韩久久精品| 亚洲美女福利视频网站| 韩国黄色一级片| 美女色狠狠久久| 日韩欧美aⅴ综合网站发布| 色综合影院在线观看| 色综合久久久久久| 精品一区精品二区高清| 奇米4444一区二区三区| 久久精品性爱视频| 亚洲澳门在线| 中文字幕av一区中文字幕天堂| 国产伦精品一区二区免费| 亚洲二区av| 欧美视频日韩视频在线观看| 国产精品无码一区二区在线| av软件在线观看| 中文字幕不卡在线观看| 日本成人黄色免费看| 亚洲欧洲视频在线观看| 成人免费视频视频| 99www免费人成精品| 国产又黄又粗又硬| 日本伊人午夜精品| 国产精品久久久久99| 91午夜视频在线观看| 国产精品99免费看| 色综合男人天堂| 欧美成人一区二区三区高清| 婷婷亚洲综合| 久久在线免费观看视频| 国产精品白丝喷水在线观看| 999国产精品视频| 日韩一区二区av| 女教师淫辱の教室蜜臀av软件| 欧美一级精品| 日韩在线免费视频| 任我爽在线视频| 国产精品久久久久久麻豆一区软件 | 国产精品久久久久久亚洲毛片 | 激情五月***国产精品| 久久国产精品影片| 欧美日韩偷拍视频| 欧美日韩综合| 国模吧一区二区| 日本中文在线播放| 母乳一区在线观看| 国产成人午夜视频网址| 久久国产香蕉视频| 国产在线精品一区二区不卡了| 成人av在线亚洲| 朝桐光av在线一区二区三区| 成人中文字幕合集| 国产精品一区二区三区不卡| 四虎在线视频免费观看| 91麻豆国产精品久久| 日韩av手机在线免费观看| 女教师高潮黄又色视频| 激情影院在线| 亚洲国产综合91精品麻豆| 97视频久久久| 日韩成人动漫| 欧美日韩一级二级三级| 欧美一级xxxx| 成人性生交大片免费看中文视频| 日韩精品极品视频| 国产精品久久免费观看| 一区二区中文| 78色国产精品| 欧美 亚洲 另类 激情 另类| 精品一区二区三区在线播放| 国产精品成人观看视频免费| 视频二区在线| 一色桃子久久精品亚洲| 日本男女交配视频| 欧美最新精品| 精品国内二区三区| 久久精品三级视频| 国产精品地址| 国产成人精品综合| 亚洲福利在线观看视频| 国产日韩精品一区二区三区| 日本a级片在线播放| 自拍偷拍亚洲视频| 91精品欧美综合在线观看最新| 国产一级片中文字幕| 怕怕欧美视频免费大全| 欧美成人免费在线观看| 天天爱天天做天天爽| 国产91在线看| 欧美 日韩 国产 在线观看| 电影一区二区三区| 欧美一级黄色大片| 微拍福利一区二区| 亚洲激情专区| 亚洲影视九九影院在线观看| 在线日本中文字幕| 色综合久久88色综合天天6| 色欲无码人妻久久精品| 久久亚洲国产| 国产精品久久婷婷六月丁香| 天天操天天干天天舔| 亚洲精品国产a久久久久久| www黄色在线| 婷婷激情久久| 欧美精品激情视频| 超碰在线观看av| 亚洲欧洲av一区二区三区久久| 国产成人久久婷婷精品流白浆| 爱爱精品视频| 欧美疯狂做受xxxx高潮| 91精品国产乱码久久久| 欧美国产日本视频| 免费观看精品视频| 伦理一区二区三区| 欧美精品福利视频| 成人免费视频国产| 亚洲欧美aⅴ...| www.污污视频| 婷婷亚洲最大| 亚洲一区亚洲二区| av理论在线观看| 欧美一区二区视频网站| 希岛爱理中文字幕| 国内精品久久久久影院薰衣草 | 欧美一区二区三| 人人爽久久涩噜噜噜网站| 亚欧在线观看视频| 欧美日韩国产精品一区二区三区四区| 中文字幕精品视频在线| 99精品国产福利在线观看免费| 国产精品区一区| 成人国产电影在线观看| 精品亚洲一区二区三区在线观看 | 国产有色视频色综合| 久草在线新免费首页资源站| 精品国免费一区二区三区| 国产精品99无码一区二区| 成人精品国产福利| heyzo国产| 国产成人短视频在线观看| 国产国语videosex另类| 最新国产在线观看| 欧美区在线观看| 波多野结衣爱爱视频| 国产成人免费高清| 成人免费观看cn| 亚洲专区视频| 国产精品亚发布| 尤物在线网址| 国产婷婷成人久久av免费高清| 91在线视频免费播放| 国产精品家庭影院| 日本人妻一区二区三区| 久久激情婷婷| 一区不卡视频| 97久久综合精品久久久综合| 4388成人网| 欧美猛烈性xbxbxbxb| 欧美大胆人体bbbb| 性色av免费观看| 亚洲同性gay激情无套| 精品久久久久一区二区| 久久久噜噜噜久久狠狠50岁| 综合网五月天| 少妇一区二区三区| 成人黄色av网| 老色鬼在线视频| 日韩在线小视频| 欧美自拍偷拍一区二区| 欧美视频精品在线观看| 日韩精品一卡二卡| 国产精品久久久久毛片软件| 中文字幕一区二区人妻电影丶| 视频一区二区三区中文字幕| 99中文字幕在线观看| 九热爱视频精品视频| av一区二区三区在线观看| 欧美日韩免费看片| 欧美黑人极品猛少妇色xxxxx| 麻豆国产在线播放| 欧美一区二区三区免费视频 | 欧美一区二区国产| 国产又黄又猛又粗又爽| 亚洲精品中文在线| 精品人伦一区二区三电影 | 91精品天堂| 97久久香蕉国产线看观看| 欧美成人精品影院| lutube成人福利在线观看| 亚洲国产成人在线播放| 国产精品日韩无码| 色婷婷久久综合| 日本少妇吞精囗交| 亚洲激情校园春色| 亚洲一级理论片| 久久午夜色播影院免费高清| 一级全黄裸体片| 精品一区二区三区在线播放视频| 欧美牲交a欧美牲交aⅴ免费下载| 国产精品hd| 免费观看黄色的网站| 少妇精品久久久一区二区三区| 高清不卡日本v二区在线| 欧美男女视频| 国产精品国模在线| 澳门成人av网| 欧美在线观看网站| 超碰在线资源| 久久久久久久久久久网站| 久做在线视频免费观看| 日韩在线视频免费观看| 成人动漫在线免费观看| 伊人亚洲福利一区二区三区| 免费在线黄色影片| 国产视频精品xxxx| 天天射天天操天天干| 亚洲成人av在线播放| 丰满少妇高潮在线观看| 日韩三级免费观看| 国产精品久久久久久69| 欧美特级限制片免费在线观看| 日韩乱码一区二区三区| 欧美怡红院视频| 在线观看亚洲国产| 欧美日韩一区二区电影| 亚洲一区二区三区高清视频| 欧美日韩精品一区二区三区| 一本一道人人妻人人妻αv| 欧美午夜精品一区二区三区| 伊人色综合久久久| 欧美日韩成人一区| 91影院在线播放| 4438x亚洲最大成人网| a级片在线视频| 日韩欧美国产高清| 人妻va精品va欧美va| 日韩国产高清污视频在线观看| 日本在线一二三| 亚洲网在线观看| 乱人伦中文视频在线| 不卡伊人av在线播放| 日韩av官网| 97av在线视频| 国产精品字幕| 亚洲一区二区三区毛片| 综合激情网...| 久久精品日产第一区二区三区精品版| 亚洲盗摄视频| 在线观看日韩羞羞视频| 欧美伊人影院| 日本少妇高潮喷水视频| 日本欧美久久久久免费播放网| 91pony九色| 成人免费毛片aaaaa**| 国产手机在线观看| 国产精品国产三级国产专播品爱网| tube国产麻豆| 欧美日韩亚洲91| 又污又黄的网站| 欧美精品一区二区久久久| 毛片在线播放网站| 超碰精品一区二区三区乱码| 九色porny丨首页入口在线| 国产精品露脸自拍| 99这里只有精品视频| 日本一区二区三不卡| 欧美黄色大片网站| 日本在线视频www| 国产一区二区在线观看免费| 好吊一区二区三区视频| 国产精品久久久久久久久免费桃花| 精品99在线观看| 欧美手机在线视频| 免费观看国产视频| 在线看日韩av| 欧美极品videos大乳护士| 国产欧美日韩专区发布| 天天久久夜夜| 日韩专区第三页| 日韩av一区二区三区四区| 精品伦一区二区三区| 国产欧美精品一区| 国产第一页在线播放| 欧美熟乱第一页| 欧美日韩伦理片| 欧美国产日本在线| 欧美成人aaa| 欧美婷婷久久| 亚洲精品1区| 中文字幕乱妇无码av在线| 久久精品日韩一区二区三区| 日韩精品视频播放| 日韩欧美在线综合网| 天天影视久久综合| 2020国产精品视频| 91在线一区| 成人性做爰片免费视频| 日韩电影在线免费观看| jizz日本免费| 亚洲va在线va天堂| 性欧美一区二区三区| 日韩亚洲成人av在线| 精品3atv在线视频| 国产女主播一区二区| 欧美freesex交免费视频| 男生操女生视频在线观看| 中文字幕第一区二区| 精品久久久久久久久久久久久久久久久久 | 久久资源综合| 青春草国产视频| 国产不卡视频一区二区三区| 成熟的女同志hd| 欧美精品日日鲁夜夜添| 午夜视频成人| 国产欧美久久久久久| 久久人人99| 在线观看免费的av| 国产精品久久久爽爽爽麻豆色哟哟 | 久久九九免费| 国产精成人品免费观看| 欧美性感一区二区三区| www在线免费观看| 国产精品久久久久免费a∨| 精品日韩免费| 在线观看免费成人av| 欧美极品美女视频| 最近中文字幕av| 神马久久桃色视频| 亚洲精品大全| 中国女人做爰视频| 国产高清无密码一区二区三区| 久久一级黄色片| 日韩高清av一区二区三区| 色偷偷色偷偷色偷偷在线视频| 欧美成人综合一区| 日韩制服丝袜先锋影音| 五月婷婷婷婷婷| 欧美一级搡bbbb搡bbbb| 日本小视频在线免费观看| 国产精品毛片一区视频| 亚洲影视在线| 在线免费观看视频| 7777精品伊人久久久大香线蕉超级流畅| 大片免费在线看视频| 国产精品视频在线免费观看 | 一区二区三区国产| 欧美 日韩 国产 精品| 欧美与黑人午夜性猛交久久久| 精品久久美女| www.欧美激情.com| 五月天丁香久久| se在线电影| 99久久久久国产精品免费| 亚洲自啪免费| 91狠狠综合久久久久久| 日韩午夜电影在线观看| 丝袜诱惑一区二区| 亚洲毛片aa| 懂色av一区二区三区免费看| 无码人妻av免费一区二区三区| 久久婷婷国产麻豆91天堂| 里番精品3d一二三区| 亚洲精品自拍网| 午夜精品123| 在线观看免费黄视频| 成人免费视频网站| 久久综合九色综合欧美狠狠| 91成人福利视频| 亚洲色图国产精品| 日日夜夜精品视频| 99久久久无码国产精品6| 亚洲免费观看高清完整版在线观看熊 | 亚洲第一中文字幕| 91精品国产66| 欧美,日韩,国产在线| 亚洲欧洲精品一区二区精品久久久| 亚洲欧洲国产综合|