久久伊人一区二区三区四区-久久伊人影视-久久伊人影院-久久伊人中文字幕-亚洲成在人色婷婷-亚洲大成色www永久网

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 利用Jest測試React組件

利用Jest測試React組件

來源:千鋒教育
發布人:wjy
時間: 2022-06-02 11:17:00 1654139820

## **利用Jest測試React組件**

> Jest 是一個由 facebook 維護的測試框架,在本文中,我們將利用 Jest 來測試 React 組件。我們將首先了解如何在純 JavaScript 函數上使用 Jest,然后再了解它提供的一些開箱即用的特性,這些特性旨在使測試 React 應用程序變得更容易。

利用 Jest測試React組件

1

注意,Jest 并不是專門針對 React 的測試框架,你可以使用它來測試任何 JavaScript 應用程序。然而,它提供的一些特性對于測試用戶界面非常方便,這就是它非常適合 React 的原因。

## **示例程序**

在可以進行測試前,我們需要一個應用程序,在此以一個待辦事項列表為例,大家可以從 Github 中克隆該應用:testing-react-with-jest。

示例項目利用 webpack 進行構建,

應用程序的入口點是 `src/index.js`,它將 `<App>` 組件呈現到 HTML 中:

```js
import React from 'react'
import { render } from 'react-dom'
import App from './App.jsx'

render(
  <App />,
  document.getElementById('root')
)
```

應用程序中組件樹層級結構如下:

2


應用中使用到的初始狀態數據及業務邏輯在 `src/state/index.js` 中:

```js
export const initialTodos = [ ... ]

export const addTodoItem = (todos, todo) => { ... }

export const toggleTodoItem = (todos, id) => { ... }

export const removeTodoItem = (todos, id) => { ... }
```

UI 界面效果:

3

## **Jest使用**

Jest 于 2014 年首次發布,雖然它最初引起了很多人的興趣,但該項目一度處于休眠狀態。然而,Facebook 投入了大量精力來改進 Jest,隨后發布了一些更新的版本,與最初的開源版本相比,Jest 的唯一相似之處是名稱和徽標,其他一切都已更改和重寫。

## **安裝與配置Jest**

首先,我們需要安裝 Jest,由于我們也在使用 Babel,所以一并安裝相關的模塊,使 Jest 和 Babel 開箱即用:

```js
$ npm install jest babel-jest --save-dev
# 或
$ yarn add jest babel-jest --dev
```

在項目根目錄下創建 `__tests__` 目錄,Jest 希望在一個`__tests__` 目錄中找到我們的測試,這已經成為 JavaScript 社區的流行約定,當然,如果你對創建 `__tests__` 目錄統一管理不感冒,Jest 也支持查找任意的 `*.test.js` 或 `*.spec.js` 文件。

下面我們來測試我們的狀態函數。

繼續創建 `__tests__/state/index.test.js`,在正式測試之前,我們先看是否能夠正常進行測試:

```js
describe('數字加減算術運算', () => {
  test('3加2減5等于0', () => {
    expect(3 + 2 - 5).toBe(0)
  })
})
```

在 `package.json` 文件中添加 `npm scripts` 任務:

```js
{
  "scripts": {
    "test": "jest"
  }
}
```

然后在命令行中執行測試任務:

```js
$ npm test
```

運行結果:

4

在 Jest 中,我們可以根據需要使用 `describe` 和 `test` 嵌套測試,`describe` 創建一個將幾個相關測試組合在一起的塊,`test` 是運行測試的方法。在此測試中,使用了 `expect` 和 `toBe` 來檢測兩個值是否完全相同。相關 API 使用我們可以在 Jest 官方 API 文檔 中進行查閱,本文中我們也可以來了解一些 Jest 的斷言。

## **測試業務邏輯**

我們已經通過一個示例看到了 Jest 在測試中的工作,下面我們來測試狀態邏輯中的一個函數 `removeTodoItem`:

```js
export const removeTodoItem = (todos, id) => todos.filter(todo => todo.id !== id)
```

`removeTodoItem` 接收要刪除待辦事項的當前狀態與待刪除待辦事項的 id。

利用 `describe` 與 `test` 編寫該測試:

```js
describe('待辦事項操作測試', () => {
  test('刪除待辦事項', () => {
   
  })
})
```

可能大家也會看到其它文檔中使用 `it` 來代替 `test`,其實 `it` 是作為 `test` 的別名使用的,二者是相同的作用。

下面開始編寫斷言,首先,可以創建一個初始狀態 `todos` 數組,然后將它傳遞給 `removeTodoItem`,再傳遞我們想要刪除的新的待辦事項 id,`removeTodoItem` 會返回完成后的狀態,可以如下定義:

```js
describe('待辦事項操作測試', () => {
  test('刪除待辦事項', () => {
    const todos = [
      {id: 1, title: '復習 React 基礎知識', completed: true},
      {id: 2, title: '復習 React Hooks 使用', completed: false}
    ]
    const finishedTodos = removeTodoItem(todos, 1)

    expect(finishedTodos).toEqual([{id: 2, title: '復習 React Hooks 使用', completed: false}])
  })
})
```

在這里我們使用 `toEqual` 來做出斷言,它對引用類型的對象將進行“深”比較是否相等。`toBe` 一般用于原始類型的值的比較,例如字符串、數字等類型,`toEqual` 通常在數組和對象上使用。

在命令行中執行 `npm test`:

5

可以看到測試通過。

## **測試React組件**

不建議在 React 組件上編寫太多的測試,任何你想測試的內容,比如業務邏輯,還是建議從組件中獨立出來放在單獨的函數中,就像上邊測試狀態函數一樣。但有時測試一些 React 交互是很有必要的,如要確保用戶在單擊某個按鈕時使用正確的參數去調用特定函數。

*如果利用 Create React App 來創建項目,從 3.3 以后的版本中已自帶官方推薦的 testing-library,本文暫不討論 testing-library。*

## **安裝與配置Enzyme**

為了編寫我們的測試,先安裝 Enzyme,這是一個由 Airbnb 編寫的包裝庫,它使得測試 React 組件變得更容易。同時,我們還要為我們使用的 React 不同版本安裝適配器,本例中使用 React v17.x,目前還沒有官方適配器可用,但也有社區版本:

```js
$ npm install --save-dev enzyme @wojtekmaj/enzyme-adapter-react-17
# 或
$ yarn add --dev enzyme @wojtekmaj/enzyme-adapter-react-17
```

對于 React v16.x,可以使用 `enzyme-adapter-react-16`。

接著對 Enzyme 進行少量相關配置,在項目根目錄下創建 `setup-enzyme.js` 文件:

```js
import { configure } from 'enzyme'
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'

configure({ adapter: new Adapter() })
```

然后在項目根目錄下創建 `jest.config.js` 文件:

```js
module.exports = {
  setupFilesAfterEnv: [
    './setup-enzyme.js'
  ],
  testEnvironment: 'jsdom'
}
```

這告訴 Jest 在執行任何測試之前,為我們運行 `setup-tests.js` 文件,由于測試的是 Web 應用程序,所以使用瀏覽器類似的環境 jsdom 來代替。

## **編寫組件渲染測試**

接下來我們就可以編寫測試了,我們來測試 `TodoItem` 組件是否能夠在段落中渲染待辦事項文本。

創建 `__tests__/components/TodoItem.test.js`:

```js
import React from 'react'
import { mount } from 'enzyme'
import TodoItem from '../../src/components/TodoItem.jsx'

describe('待辦事項-列表項組件', () => {
  test('渲染待辦事項列表項', () => {
   
  })
})
```

從 `enzyme` 中導入 `mount`,用于渲染組件,這樣就可以檢查輸出并對其進行斷言測試了。即使我們在 Node 環境中運行測試,也可以編寫需要的 DOM 并進行測試,因為 Jest 中允許你使用 `jsdom` 庫操作 DOM,這樣就不必每次都啟動瀏覽器來測試了。

接下來我們完成測試編寫,整個測試如下:

```js
import React from 'react'
import { mount } from 'enzyme'
import TodoItem from '../../src/components/TodoItem.jsx'

describe('待辦事項-列表項組件', () => {
  test('渲染待辦事項列表項', () => {
    const todo = {id: 2, title: '復習 React Hooks 使用', completed: false}
    const wrapper = mount(
      <TodoItem todo={todo} />
    )
    const p = wrapper.find('p')
    expect(p.text()).toBe('復習 React Hooks 使用')
  })
})
```

簡單說明一下,我們可以使用 `mount` 來創建 `TodoItem`,然后調用 `wrapper.find()` 傳遞一個 CSS 選擇器來查找節點,由于示例的 DOM 很簡單,所以直接使用 `p` 元素選擇器查找,這和使用 `jQuery` 類似。最后,可以斷言段落中的文本內容應該是“復習 React Hooks 使用”。

6

可以看到測試通過。

## **編寫交互測試**

下面我們來測試當點擊待辦事項列表項中的段落時,修改待辦事項的完成狀態。

Jest 中提供了 **`spy`** (間諜)的開箱即用的功能,一個 `spy` 是一個函數,你不用關心它的實現,只需關心它的調用時間與調用方式,當我們要監視函數時可以考慮使用它。

要修改待辦事項的完成狀態,需要傳遞 `toggle` 屬性,它是一個函數,我們現在來測試當用戶點擊時,該函數被使用正確的參數進行調用。

首先使用 `jest.fn()` 創建一個 `spy`:

```js
const toggle = jest.fn()
```

這為我們提供了一個可以監視并確保它被正確調用的函數。

接下來渲染 `TodoItem` 組件:

```js
const toggle = jest.fn()
const wrapper = mount(
  <TodoItem todo={todo} toggle={toggle} />
)
```

然后查找 DOM 節點并模擬用戶觸發點擊事件:

```js
const p = wrapper.find('p')
p.simulate('click')
```

`simulate()` 用于模擬用戶事件。

剩下的就是斷言 `spy` 函數被正確調用,整個測試應該如下:

```js
test('點擊修改待辦事項狀態', () => {
  const toggle = jest.fn()
  const todo = {id: 2, title: '復習 React Hooks 使用', completed: false}
  const wrapper = mount(
    <TodoItem todo={todo} toggle={toggle} />
  )
  const p = wrapper.find('p')
  p.simulate('click')
  expect(toggle).toBeCalledWith(2)
})
```

我們期望使用待辦事項的 id 作為參數進行調用,可以用 `expect(toggle).toBeCalledWith(2)` 來斷言。這樣,我們的測試就完成了:

7

測試通過。

## **總結**

Jest 被大量的使用,已成為 JavaScript 開發人員最愛的測試框架之一,相信它會變得更好。在測試方面,它擁有速度快、API 簡單、易配置、IDE 整合、多項目并行等優勢,相信隨著大家的使用,你一定會愛上它的。

文章示例 Github 倉庫:[https://github.com/itrainhub/testing-react-with-jest](https://link.zhihu.com/?target=https%3A//github.com/itrainhub/testing-react-with-jest)

**- End -**

更多關于“web前端培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的提升班,高品質課程助理你實現夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 非洲人与性动交CCOO| 国产成人精品久久综合 | 调教小SAO货撅起打屁股作文| 巨RU麻麻奶水雪白肥美喷| 激情伊人五月天久久综合| 人妻中文字幕制服丝袜| 久久久久成人精品| 人妻少妇无码专视频在线| 国产精品久久久久久久久岛 | 丰满人妻无码使劲张开双腿AV | 大象成品W灬源码1| 国产成人涩涩涩视频在线观看| 被黑人捅入子宫射精小说| 粉嫩av一区二区三区四区 | 国产日产欧产精品精品蜜芽| 欧美人妻精品一区二区三区| 欧美午夜成人精品| 久久亚洲精品成人AV无码网站| 久久久久久国产精品MV| 黑人又大又粗又长欧美网站| 午夜亚洲乱码伦小说区69堂| 丰满大屁股BWWBWWBWW| 人与畜禽共性关系的重要性| 亚洲AV永久无码精品古装片| 少妇被躁C至高潮HD| 国产乱人伦偷精品视频免| 中文毛片无遮挡高潮免费| 欧美一进一出抽搐大尺度视频| 啊哈~给我~啊(H)| 国产裸体XXXX视频在线播放| 一面亲上边一面膜下边| 人喾交性专区免费看| 高清拍拍拍无挡国产精品 | 欧美熟VIDEOS肥婆| 乌克兰少妇XXXX做受野外| 无码人妻精品一区二区在线视频 | 欧美96在线 | 欧| 成人精品免费视频在线观看| 对白脏话肉麻粗话AⅤ| 久久99精品久久久久久HB无码| 国产精品国产三级国产AⅤ| 国产精品亚洲片在线| 丰满少妇AAAAAA爰片毛片| 国产成人无码AⅤ片在线观看| 男女啪啪摸下面喷水网站| 日本护士HD人XXXX| 欧美裸体XXXX极品少妇| 国产在线无码精品电影网| 天堂√最新版中文在线天堂| 真实国产乱人伦在线视频播放| 午马视频影院1区2区3区4区| 无码一区在线视频| 无码AV在线一区二区| 午夜爽爽爽男女免费观看影院| 人妻无码AⅤ中文字幕日韩| 色欲AV浪潮AV蜜臀AⅤ| 亚洲AV无码专区在线电影APP| 丰满人妻一区二区三区无码AV| 制服 丝袜 有码 无码 中文| 亚洲色成人一区二区三区小说| 久久大香伊蕉在人线国产H| 欧美午夜一区二区福利视频| 国产国语对白又大又粗又爽| 熟女少妇内射日韩亚洲| 无码人妻精品一区二区三| 成人无码WWW免费视频| 亚洲精品456在线播放| 内射后入在线观看一区| 在线观看免费A∨网站| 成人无码H动漫在线网站樱花| 日本一区二区在线播放| 人人爽人人操人人精品| 无码播放一区二区三区| 青春草无码精品视频在线观看 | 在线观看日本亚洲一区| 亚洲AV无码久久精品成人 | 娇妻强被迫伦姧惨叫 在线| 国产9 1在线 | 欧洲| 小鲜肉洗澡时自慰网站XNXX| 丰满少妇人妻XXXXX| 超薄肉色丝袜一区二区| 色狠狠一区二区三区香蕉| 公司办公桌C了我好几次| 久久国产热精品波多野结衣AV| 欧美体内SHE精视频| 狠狠色丁香久久综合| 无码一区二区三区蜜桃| 一碰就有水的女人男人喜欢?| 肥胖BMGBMGBMG多毛图片| 久久久久女人精品毛片| 人与畜禽共性关系的重要性| 欧美极品在线观看| 欧美成人A天堂片在线观看| 免费观看A级毛片视频| 人妻丰满熟妇AV无码区免| 中文无码乱人伦中文视频播放 | 又黄又硬又湿又刺激视频免费| 亚洲AV无码乱码国产精品老妇| 四虎免费影院1515WWW| 锕锕锕锕锕锕~好深啊APP下载| 国产又猛又黄又爽| 国产精品亚洲А∨无码播放麻豆| 国产又色又爽又黄的网站在线| 日本狂喷奶水在线播放212 | 国产精品一区二区久久| 欧美成人A天堂片在线观看| 国产成人一区二区三区免费| 欧洲免费无码视频在线| 波多野结衣AV一区二区三区中文| 差差漫画页面免费漫画欢迎你| 人妻丰满熟妇av无码区HD优| 成人精品视频一区二区| 真人作爱试看90分钟免费影视| 国精产品一区一区三区有限在线| 少妇人妻偷人精系列| 日本伦奷在线播放| 成人无码精品1区2区3区免费看| 五十老熟妇乱子伦免费观看| 欧美黑人一区二区| 无码一区二区三区AⅤ免费麻豆| 女人无遮挡无内衣内裤网站| 日本XXXX色视频在线观看免费,| 男人添女人下部高潮全视频| 欧美精品乱码视频一二专区| 国产精品JIZZ视频| 国产精品一国产精品一K频道| 欧美又粗又长XXXXBBBB疯| 日日摸夜夜添夜夜添亚洲女人| 成人麻豆精品激情视频在线观看 | 中文字幕日产无线码一区| 国产精品V欧美精品∨日韩| 丰满少妇被猛烈进入无码| 在线日产精品一区| 人妻AV中文字幕一区二区三区| 国产精品无码久久久久| 无码H黄肉3D动漫在线观看| 色欲网久久久久久久久久久久久久| 色婷婷粉嫩AV精品综合在线| 国产精品成人网站| 欧美无砖专区一中文字| 国产精品亚洲产品一区二区三区| 无码人妻精品一区二区三区久久 | 日本少妇人妻XXXXⅩ18| 女儿的朋友6中汉字| 少妇人妻一级AV片| 久久久久久精品免费免费WER| 熟妇五十路六十路息与子| 女儿的朋友6中汉字| 无码H黄肉3D动漫在线观看| 国产一产二产三精华液区别在哪| 男人J放进女人P全黄动态图| 欧美午夜一区二区福利视频| 久久精品影视免费观看| 挺进邻居丰满少妇的身体| 久久精品国产99国产精品| 精品一区二区三区不卡少妇av| 粉嫩av一区二区精品爆乳| 国产成人AV免费观看| 国产成人无码精品XXXX| 小荡货奶真大水多好紧视频| 日本适合十八岁以上人群的护肤品| 国产对白videos麻豆高潮| 精品一区二区三区不卡少妇av| 欧洲美女粗暴交视频| 在厨房被C到高潮A毛片奶水| 亚洲精品无码久久千人斩| 蜜桃AV一区二区三区| 精品人妻无码专区中文字幕 | 日韩人妻OL丝袜AV一二区| 偷看自己婆给别人玩经过| 亚洲AV无码国产在丝袜APP| 精品熟女少妇AV免费久久| 亚洲妇女无套内射精| 伊人色综合一区二区三区| 国产日韩AV免费无码一区二区三| 亚洲AV成人无码久久精品| 麻豆传播媒体APP官网在线观看| 国产精品亚洲第一区焦香味 | 抖抈探探APP入口免费| 天天爽夜夜爽人人爽一区二区| 亚洲AV无码专区亚洲AV| 丝瓜秋葵草莓香蕉榴莲绿| 热RE99久久精品国99热| 久久九九精品国产AV片国产| 男人GAY自慰吞精网站| 粉嫩AV一二三区免费| 玩弄粉嫩少妇高潮出白浆AⅤ| 岳女四人共侍一夫婷婷| 高清一个人看WWW免费| 一区二区三区中文字幕| 男人J放进女人P全黄动态图| 欧洲老人毛多BBWBBWBBW| 熟妇人妻AV无码一区二区三区| 蜜臀AV无码一区二区三区| 欧美性色黄大片WWW喷水| 女厕脱裤撒尿大全视频| 国产高清自产拍AV在线| 国产超碰人人爽人人做人人添| 破了亲妺妺的处免费视频国产| 天天做天天躁天天躁| 国产成人精品无码播放| 成人无遮挡裸免费视频在线观看| 亚欧洲精品在线视频免费观看| 无码少妇xxxx| 中国CHINESE壮男GⅤ军警| 拔萝卜日本视频在线观看免费| 日本久久久久亚洲中字幕| 公司办公桌C了我好几次| 野花在线高清视频| 又黄又硬又湿又刺激视频免费| 欧美性猛交XXXX乱大交丰满| 中文人妻熟妇乱又伦精品| 国产精品日本亚洲欧美| 强被迫伦姧在线观看中文版| 日韩A级成人免费无码视频| 野花高清中文免费观看视频| 女人18毛片A级毛片| 精品国产三级A在线观看| 久久九九精品国产AV片国产| 久久寂寞少妇成人内射| 女人脱精光让人桶爽了| 丰满少妇高潮惨叫在线观看| 久久久久久精品免费不卡| 国产精品视频色拍拍| 玩弄JAPAN白嫩少妇HD小说| 窝窝人体色WWW聚色窝| 一女被两男吃奶玩乳尖| 日本伦奷在线播放| 无码人妻精品一区二区在线视频| 高清拍拍拍无挡国产精品 | 中国老太卖婬HD播放| 人妻精油按摩BD高清中文字幕 | 岳打开双腿开始配合交换| 亲孑伦视频一区二区三区| 强开少妇嫩苞又嫩又紧小说| 久久国产精品成人片免费| 人人妻人人澡人人爽人人DVD| 嫩BBB槡BBBB搡BBBB| 久久精品囯产精品亚洲| 国内精品久久久久精免费| 久久久久亚洲AV无码专区| 日韩AV无码中文一区二区三区| 亚洲色成人一区二区三区小说| 无码中文字幕AV免费放DVD| 日韩无码视频三区| 和朋友换娶妻野外夫妇3| 高清播放器欧美大片| 最新国产成人AB网站| 亚洲综合成人婷婷五月网址| 久久国产成人午夜AV影院| 久久久久久人妻精品一区| 热RE99久久精品国产99热| 国产精品成人一区二区三区视频 | 欧美熟老妇人多毛OOXⅩ| 国产又大又黑又粗免费视频| 余年周婉小说全文免费阅读完整版 | 国产公妇仑乱在线观看| 私密按摩高潮熟女啪啪| 成年轻人电影免费 视频| 国内偷自第一区二区三区| 日产精品久久久久久久| 国产成人亚洲综合无码99| 亚洲人妻在线视频| 少妇人妻精品一区二区三区| 在线欧美精品一区二区三区| 久久精品亚洲男人的天堂| 日韩一区二区三区精品| 成人亚洲欧美成ΑⅤ人在线观看| 丰满人妻一区二区三区视频53| 首页 动漫 亚洲 欧美 日韩 | 嗯~啊哈好深好骚啊哼| 少妇自慰喷AV免费网站| 教官在我腿间疯狂驰聘视频| 人妻丰满熟妇AV无码区乱| 日本水蜜桃身体乳的美白效果| 国产成人精品久久综合| 成人免费A级毛片久久| 国产精品嫩草影院永久…| 小12箩利洗澡无码视频网站| 日韩精品无码一区二区中文字幕| 天天摸天天摸色综合舒服网| 欧美free叉叉叉叉极品少妇| 日韩AV影院在线观看| 欧美XXXX做受欧美88HD| 天天玩天天玩天天玩| 成人爽A毛片免费| 蜜桃av一区二区三区| 国产激情久久久久久熟女老人| 偷看自己婆给别人玩经过| 久久69精品久久久久久HB| 色婷婷成人综合激情免费视频| 国产精品无码久久久久| 久久综合九色综合欧美婷婷| 强行糟蹋人妻HD中文字幕| 国产精品久久自在自线| 成人年无码AV片在线观看| 纯肉无遮挡H肉动漫在线观看3D| 国产午夜精华无码网站| 无码AV免费一区二区三区四区| 一面膜上边一面膜下边韩国| 成人精品一区二区久久久| 豆国产97在线 | 韩国| 在线日产精品一区| 欧美一进一出抽搐大尺度视频| 欧美大屁股XXXX高跟欧美黑人| 亚洲AV无码专区国产乱码DVD| 丰满的人妻HD高清日本| 国产精品爽爽V在线观看无码| 国产精品99久久久久| 天天综合网网欲色| 宝贝小嫩嫩好紧好爽H在线视频| 国产精品亚洲А∨无码播放麻豆| 有人有在线观看的片资源| 成 人 黄 色 网 站 视 频| 国产精品色视频ⅩXXX| 动漫人物插画动漫人物的视频| 成人无码免费一区二区三区| 岳又紧又嫩又多水好爽| 麻豆成人精品国产免费| 疯狂做受ⅩXXX高潮欧美| 亲近相奷对白中文字幕| 无码人妻丰满熟妇区毛片18| 成人看片黄APP免费看软件| 久久精品第一国产久精国产宅男6| 韩国青草无码自慰直播专区| 亚洲精品456在线播放| 亚洲国产精品嫩草影院久久| 亚洲日本一本DVD高清| 全球AV集中精品导航福利| 精品久久久无码人妻中文字幕豆芽| 未满十八18禁止免费无码网站| 挺进绝色老师的紧窄小肉| 亚洲大尺度无码专区尤物| 欧美性色欧美A在线播放| 精品影片在线观看的网站| 日本三级强伦姧护士HD| 亚洲AⅤ无码日韩AV中文AV伦| 吃瓜爆料黑料不打烊| 激情五月丁香六月综合AVXXXX | 日本熟妇人妻XXXXX野外呻| 国产精品无码不卡一区二区三区| 无码无套少妇毛多18PX| 草木影视在线视频免费观看| 亚洲AV日韩AV永久无码水密桃| 国产成人久久AV免费高潮| 人人妻人人爽人人澡人人少妇| 天干天干天啪啪夜爽爽AV| 国产成人综合久久精品| 免费一对一真人视频| 韩漫嘿啾漫画进入| 在图书馆揉捏她的双乳| 男朋友要再做一次才同意分手| 亚洲A∨国产AV综合AV网站| 久久99热精品免费观看牛牛| 精品熟女少妇AV免费观看| 欧美人妻精品一区二区三区| xxxx免费网站| 亚洲国产欧美在线人成最新| 久久成人A毛片免费观看网站| 色天使色偷偷色噜噜| 无码A∨高潮抽搐流白浆8MAV | 漂亮人妻中文字幕丝袜| 久久久久久亚洲精品无码| 黑人巨大进入白人美女视频| 强壮公弄得我次次高潮| 欧美私人家庭影院| 国产成人亚洲精品无码H| 丰满圆润大胸在线| 久久久久久成人毛片免费看| 国产精品成人VA在线观看| 吃瓜爆料黑料不打烊| 欧美亚洲国产SUV| 亚洲AV成人综合五月天在线观看| 锕锕锕锕锕锕锕好疼免费视频| 小雪被老汉玩遍各种方式| 国99久9在线 | 免费| 黑人巨茎迎战白嫩少妇| 毛很浓密超多黑毛的少妇| 人妻系列综合第一页| 亚洲精品日韩AV专区| 日韩一区二区三区精品| 国产精品三级一区二区| 成 人 A V免费视频在线观看| 吃奶呻吟打开双腿做受动态图| 国产精品色视频ⅩXXX| 无码人妻AⅤ一区二区三区夏目| 国产又大又黑又粗免费视频| 亚洲色成人一区二区三区小说| 国产精品电影久久久久电影网| 亚洲AV无码一区二区三区久久精| 女主播屁G裸露W身曝光| 老熟妇仑乱一区二区视頻| 亚洲无AV码一区二区三区| 高潮喷视频在线无码| 亚洲乱妇老熟女爽到高潮的片| 久久久久亚洲AV综合仓井空| 久久99精品久久久久子伦| 少妇午夜AV一区| 国产福利一区二区久久| 人妻系列无码专区久久五月天| 亚洲AV人无码激艳猛片服务器 | 波多野结衣迅雷种子| 成 人 A V免费视频在线观看 | 成年片色大黄全免费网站久久| 亚洲精品无码成人| 成人无码WWW免费视频| 久久无码AV中文出轨人妻| 特大黑人巨交吊性XXXX| 色既是空在线观看| 国产自无码视频在线观看|