精品欧美一区二区三区在线观看 _久久久久国色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)

欧美日韩国产欧| 青青久久精品| 久久网站热最新地址| 国产成人免费91av在线| 免费看裸体网站| 91视频亚洲| 天天综合色天天综合| 神马影院我不卡| 96日本xxxxxⅹxxx17| 欧美日韩精品一本二本三本| 精品一区电影国产| 中文字幕第100页| 波多野结衣中文在线| 91在线免费播放| 成人妇女淫片aaaa视频| 日韩精品视频播放| 91麻豆精品国产91久久久平台| 日韩欧美国产精品| 噼里啪啦国语在线观看免费版高清版| av片在线观看网站| 国产亚洲欧美一级| 国产伦精品一区二区三毛| 在线观看毛片av| 国产精品日韩精品欧美精品| 久久久999精品视频| 9.1成人看片| 国产日韩在线观看视频| 91精品91久久久中77777| 日本a级片在线观看| 岛国在线视频免费看| 成人国产精品视频| 亚洲一区二区在线| 一卡二卡在线观看| 久久精品盗摄| 91av网站在线播放| 久久久久久久久艹| 仙踪林久久久久久久999| 亚洲片av在线| 国产精品jizz| 欧美亚视频在线中文字幕免费| 欧美一区二区精品久久911| 男女无套免费视频网站动漫| 在线免费三级电影网站| 亚洲成人在线观看视频| 欧美人与动牲交xxxxbbbb| 日本不卡三区| 中文乱码免费一区二区| 任我爽在线视频精品一| 日韩电影免费| 成人aa视频在线观看| 波多野结衣久草一区| 99热这里只有精品3| 国产在线视频不卡二| 国产中文字幕91| 亚洲天堂视频在线| 久久福利资源站| 国产在线观看精品一区二区三区| 中文字幕第2页| 免费av网站大全久久| 国产精品成人国产乱一区| 97久久久久久久| 国产乱码精品| 欧美一区二区色| 国产91精品看黄网站在线观看| 亚洲免费中文| 国产成人精品一区二区三区| www毛片com| 日韩电影在线一区二区| 国产精品久久久久久久久免费 | 国产精品一区二区婷婷| 久久综合色播五月| 婷婷五月色综合| 欧美成人三区| 亚洲综合一区二区| 日本欧美黄色片| 精品国模一区二区三区| 欧美日韩亚洲国产综合| 日本r级电影在线观看| 福利电影一区| 亚洲欧美国产日韩天堂区| 影音先锋制服丝袜| 91tv官网精品成人亚洲| 久久久女女女女999久久| 啦啦啦免费高清视频在线观看| 日韩专区在线视频| 91网站免费看| 天堂v视频永久在线播放| 久久精品视频网| 熟妇熟女乱妇乱女网站| 免费电影视频在线看| 色婷婷香蕉在线一区二区| 色噜噜狠狠永久免费| 日韩精品三级| 亚洲精品在线视频| 糖心vlog免费在线观看| 99精品国产99久久久久久福利| 浅井舞香一区二区| 国产丝袜在线视频| 久久亚洲精品国产精品紫薇| 日韩人妻精品一区二区三区| 日韩精品av| 欧美精品第一页| 国产精品久久久免费观看| 色乱码一区二区三区网站| 欧美激情啊啊啊| 国产精品欧美综合| 成人免费看视频| 国产伦精品一区二区三区免| 黄色影院在线播放| 一区二区三区在线观看国产| 亚洲第一中文av| 女一区二区三区| 久久精品久久精品亚洲人| www.毛片.com| 成人免费黄色在线| 午夜啪啪福利视频| 人人鲁人人莫人人爱精品| 欧美大片日本大片免费观看| 国产白丝一区二区三区| 国产精品呻吟| 不卡视频一区二区| v天堂福利视频在线观看| 色婷婷国产精品综合在线观看| 韩国三级丰满少妇高潮| 日韩精品免费一区二区在线观看| 97在线视频观看| 精品国产一级片| 国产精品不卡在线观看| 黑鬼大战白妞高潮喷白浆| 国产精品chinese在线观看| 久久久999国产精品| 中文字幕在线视频第一页| 久久精品一区二区三区不卡牛牛| 97视频在线免费| 一区二区三区视频播放| 久久久99免费视频| 一级日韩一级欧美| 亚洲国产成人私人影院tom| 久草资源站在线观看| 久久99国产精品久久99大师| 欧美国产日韩一区| 亚洲AV无码一区二区三区性 | 久久久久亚洲天堂| 激情五月播播久久久精品| 四虎影院一区二区三区 | 欧美唯美清纯偷拍| 中文字幕国产专区| 久久这里有精品15一区二区三区| 精品一区二区三区视频日产| 国产激情视频在线看| 亚洲精品在线免费观看视频| 九九热这里有精品视频| 国产精品 欧美精品| 免费cad大片在线观看| 日韩亚洲精品在线观看| 欧美黑人巨大xxx极品| 精品人妻少妇嫩草av无码专区| 一区在线播放视频| 亚洲理论中文字幕| 久久久久久久久99精品大| 成人午夜激情网| 91福利国产在线观看菠萝蜜| 日韩欧美黄色影院| 国产精品自拍视频一区| 99久久久国产精品免费蜜臀| 免费黄色日本网站| 精品久久综合| 成人有码在线播放| 手机在线免费观看av| 欧美精品一区二区精品网| 国产精品suv一区二区三区| 久久美女高清视频| 男女爽爽爽视频| 91精品综合久久久久久久久久久| 亚洲一区二区三区在线免费观看| 爱看av在线| 亚洲美女自拍视频| 一级黄在线观看| 亚洲精品伦理在线| 亚洲精品乱码久久久久久蜜桃图片| 国产情侣久久| 日韩精品久久久免费观看| 亚洲国产91视频| 久久久久久高潮国产精品视| 男女网站在线观看| 这里是久久伊人| 国产一级特黄a高潮片| 久久综合九色综合97_久久久| 性欧美极品xxxx欧美一区二区| 国产精品久久久久9999赢消| 国产一区二区三区免费不卡| 国产在线|日韩| 欧美极品美女电影一区| a中文在线播放| 欧美精品一区二区三区蜜臀 | 国产探花视频在线观看| 亚洲伦理中文字幕| 国产wwwxxx| 色婷婷av一区二区三区大白胸| 少妇高潮一区二区三区喷水| av午夜一区麻豆| 午夜宅男在线视频| 亚洲国产高清一区| 制服诱惑一区| 九九久久成人| 爱情岛论坛亚洲入口| 成人在线不卡| 欧美综合激情网| www久久日com| 中文字幕精品在线| 亚洲人在线观看视频| 欧美一区在线视频| 久草热在线观看| 欧美日韩国产精品一区二区三区四区| 国产色视频一区二区三区qq号| 国产激情一区二区三区桃花岛亚洲| 免费大片在线观看| 99国产精品| 69精品丰满人妻无码视频a片| 日韩电影免费网站| 欧美13一14另类| 欧美日韩精品一区二区三区在线观看| 成人黄在线观看| 天然素人一区二区视频| 欧美中文字幕在线| 92久久精品| 欧美日韩国产二区| a级片国产精品自在拍在线播放| 一区二区三区www| 可以在线观看的av网站| 亚洲精品国产精品乱码不99按摩 | 97成人超碰| 欧洲成人午夜免费大片| 国产在线精彩视频| 久久久久免费精品国产| 日本无删减在线| 九九综合九九综合| 色老头在线观看| 欧美激情视频一区| 欧美韩日亚洲| 欧美极品少妇xxxxⅹ喷水 | 第一会所亚洲原创| 日韩欧美精品一区二区| 国产精品一区2区3区| 欧美极品一区二区| 国产精品三级| 色视频一区二区三区| blacked蜜桃精品一区| 日本午夜精品电影| 成人综合专区| 最新国产精品久久| 91精品综合| 国产成人一区二区三区别| 欧美日韩国产精品一区二区亚洲| 青青在线视频免费观看| 亚洲性感美女99在线| 超级碰在线观看| 亚洲国产免费看| 久久国产亚洲精品无码| 久久高清免费观看| 免费看国产黄色片| 极品美女销魂一区二区三区 | 国产95亚洲| http;//www.99re视频| jizz性欧美23| 免费在线成人av电影| 真实原创一区二区影院| 欧美精品一区二区三区在线看午夜| 婷婷综合一区| 亚洲欧美日韩在线综合| 欧美一区成人| 欧美大片在线播放| 日韩中文字幕区一区有砖一区| 特级丰满少妇一级| 国产麻豆欧美日韩一区| 欧产日产国产精品98| 欧美高清在线精品一区| 天堂网avav| 天天av天天翘天天综合网 | 日韩电影免费在线观看网站| av在线网址导航| 岛国精品一区二区| 欧美激情aaa| 亚洲欧美色图小说| 日韩免费视频一区二区视频在线观看| 欧美在线观看禁18| 精品国产伦一区二区三区| 日韩精品一区二区视频| 日本黄色片在线观看| 98精品国产高清在线xxxx天堂| 欧美日韩在线精品一区二区三区激情综合| 成人午夜在线视频一区| 亚洲宅男一区| 日本道在线视频| 石原莉奈在线亚洲二区| 波多野结衣三级视频| 国产欧美综合在线观看第十页| 欧美激情国产精品免费| 91精品福利视频| 天天操天天射天天舔| 日韩一区二区福利| 亚洲最大网站| 成人h在线播放| 日韩在线精品| 哪个网站能看毛片| 成人一区二区在线观看| 美国黄色特级片| 福利视频导航一区| 午夜精品久久久久久久99热黄桃| 国产亚洲精品91在线| 2001个疯子在线观看| 亚洲www在线| 日韩欧美午夜| 亚洲国产精品毛片av不卡在线| 成人精品一区二区三区四区 | 亚洲一级特黄| 99精品999| 中文字幕免费一区| 黄色片免费观看视频| 欧美成人a视频| 免费网站成人| 国产精品日韩一区| 加勒比色老久久爱综合网| 2025韩国大尺度电影| 免费久久99精品国产| 中文字幕丰满孑伦无码专区| 亚洲v日本v欧美v久久精品| 国产999久久久| www国产亚洲精品久久网站| 日韩精品影院| 欧美日韩中文国产一区发布| 99成人在线| 在线天堂www在线国语对白| 亚洲国产精品一区二区久久恐怖片 | 极品久久久久久久| 91国产成人在线| 国产尤物视频在线| 国产精品ⅴa在线观看h| 国产精品亚洲二区| 欧在线一二三四区| 国产亚洲欧美激情| 久久久久亚洲视频| 亚洲性69xxxbbb| 成人免费毛片嘿嘿连载视频…| 日韩精品久久一区| 男男视频亚洲欧美| 国产精品69久久久久孕妇欧美| 欧美丝袜丝交足nylons| 春暖花开成人亚洲区| 国产精品视频自在线| 日韩不卡一区| 久久久久久久久久久久久久久国产 | 九九九九九精品| 国产日韩亚洲| 成人片黄网站色大片免费毛片| 色婷婷av一区二区| 国产高清一区在线观看| 国产精品视频专区| 欧美/亚洲一区| 国产精品果冻传媒| 欧美日韩国产麻豆| 国模精品一区二区| 成人www视频在线观看| 欧美三区视频| 久久偷拍免费视频| 欧美午夜一区二区三区| 黄色免费网站在线| 国产a一区二区| 亚洲制服av| 亚洲一二三四五六区| 日韩欧美综合在线| 国产美女高潮在线观看| 日韩欧美精品一区二区三区经典| 精品一区二区在线免费观看| 九九精品在线观看视频| 亚洲精品一区二区在线| 日韩欧乱色一区二区三区在线 | 成人av黄色| 国精产品一区二区| 免费成人小视频| 免费一级肉体全黄毛片| 亚洲跨种族黑人xxx| 亚洲午夜国产成人| 黄色一级片播放| 国产精品久久精品日日| 国产自产一区二区| 国产精品夫妻激情| 韩日欧美一区| 俄罗斯毛片基地| 亚洲国产天堂网精品网站| 欧美精品高清| 亚洲国产精品无码观看久久| 国产免费成人在线视频| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 日韩免费视频在线观看| 欧美日韩亚洲三区| 四虎国产成人精品免费一女五男| 精品国精品国产| 日本久久一区| 成人在线观看a|