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

如何使用Vue測試庫測試應用程序?

開發(fā) 前端
在整個測試案例中,您會注意到,我們更加專注于從用戶肉眼能看到并與之交互的角度編寫測試。以這種方式編寫測試可以確保我們測試的是對應用的用戶比較重要的東西。

?閱讀前應該具備:

了解vue相關知識

 熟悉測試APP的UI

按照慣例,在Vue的生態(tài)中,當您要測試應用程序時,您可以使用@ vue/test-utils-Vue的官方測試庫。這個庫提供相關API以方便用戶測試渲染的Vue組件實例。例如:

// example.spec.js
import { shallowMount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
it('renders props.msg when passed', () => {
const msg = 'new message'
const wrapper = shallowMount(HelloWorld, {
propsData: { msg }
})
expect(wrapper.text()).toMatch(msg)
})
})

您可以看到我們正在使用@vue/test-utils庫提供的shallowMount函數(shù)來載入渲染我們項目開發(fā)代碼中Vue組件。

上述測試Vue組件的方法的問題在于,用戶最終要與DOM進行交互,對于Vue如何渲染UI沒有任何了解。相反,一般只會通過文本內容、輸入框的標簽以及頁面上的一些其他可見的視覺線索來尋找對應UI元素是否可見。

一個更好的方法是為你的Vue應用程序編寫測試用例,以反映實際用戶如何與之交互,例如在結賬頁面中尋找一個增加產(chǎn)品購買數(shù)量的按鈕,所以才需要Vue測試庫。

Vue測試庫是什么?

Vue測試庫是Vue的一個輕量級測試庫,它在@vue/test-utils的基礎上提供了輕量級的實用功能。它是根據(jù)一個簡單的引導原則創(chuàng)建的:

The more your tests resemble the way your software is used, the more confidence they can give you.
— testing-library.com

為什么使用Vue測試庫?

  • 你要寫的測試用例不需要關注于實現(xiàn)細節(jié),即測試方法的實現(xiàn)方式,而不是它是否產(chǎn)生了所需要的結果。
  • 您想編寫針對實際DOM節(jié)點而不是渲染的Vue組件的測試。
  • 您想要編寫以與用戶相同的方式查詢DOM的測試。

Vue測試庫的原理

Vue測試庫通過提供用于查詢DOM的功能來發(fā)揮作用,就像用戶與DOM進行交互的方式一樣。這些實用的功能使您可以通過標簽文本查找元素,從其文本內容中找到鏈接和按鈕,并斷言可以完全訪問Vue應用程序。對于無法通過文字內容或標簽來查找元素或其它不切實際的情況,Vue測試庫提供了一種比較推薦的方法,即通過使用data-testid屬性作為標記來查找這些元素。

data- testd屬性被添加到您計劃在測試中查詢的HTML元素中。如

<button data-testid="checkoutButton">Check Out</button>

開始使用Vue測試庫

現(xiàn)在,你已經(jīng)了解了為什么應該使用Vue測試庫以及其工作方式,讓我們在全新的Vue CLI創(chuàng)建的Vue項目中進行配置。

首先,我們將通過在終端中運行下面的命令創(chuàng)建一個新項目(假設您的機器上安裝了Vue CLI)

vue create vue-testing-library-demo

為了運行測試,我們將使用Jest,它是Facebook開發(fā)的測試運行程序。Vue CLI具有一個可以輕松配置Jest的插件。讓我們添加該插件:

vue add unit-jest

添加完成后,您會發(fā)現(xiàn)在package.json中添加了一個新腳本:

"test:unit": "vue-cli-service test:unit",

這個腳本就是用來運行測試用例的。它還在src中添加了一個新的tests文件夾,并在tests文件夾中添加了一個單元文件夾,其中包含一個名為example.spec.js的示例測試文件。基于Jest的配置,當我們運行npm run test:unit時,Jest將在tests目錄中查找文件并運行測試文件。讓我們運行示例測試文件:

npm run test:unit

這應該會運行test/unit目錄下的example.spec.js測試文件。讓我們看看這個文件的內容。

import { shallowMount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
it('renders props.msg when passed', () => {
const msg = 'new message'
const wrapper = shallowMount(HelloWorld, {
propsData: { msg }
})
expect(wrapper.text()).toMatch(msg)
})
})

默認情況下,使用Vue CLI插件安裝Jest會安裝@vue/test-utils,因此上面的測試文件使用的是@vue/test-utils中的showMount函數(shù)。但是我們要使用Vue測試庫而不是@vue/test-utils。為此,我們將卸載@vue/test-utils,因為我們將不需要它。

npm uninstall @vue/test-utils --save-dev

然后,我們安裝Vue測試庫

npm install @testing-library/vue --save-dev

接著,我們將tests/unit/example.spec.js修改為:

import { render } from '@testing-library/vue'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
it('renders props.msg when passed', () => {
const msg = 'new message'
const { getByText } = render(HelloWorld, {
props: { msg }
})
getByText(msg)
})
})

再次運行測試,應該可以通過。讓我們看看我們做了什么:

  • 我們使用Vue Testing Library公開的render函數(shù)來渲染HelloWorld組件。render是渲染Vue組件的唯一方法。調用render時,需要傳入Vue組件和一個可選的options對象。
  • 然后,我們使用options對象傳遞HelloWorld組件所需的參數(shù)。render將返回一個帶有輔助方法的對象來查詢DOM,而這些方法之一就是getByText。
  • 最后,我們使用getByText斷言DOM中是否存在具有“新消息”文本內容的元素。

到目前為止,您可能已經(jīng)注意到從考慮測試渲染的Vue組件到用戶在DOM中看到的轉變。這一轉變將使您從用戶的角度測試應用程序,而不是將重點放在實現(xiàn)細節(jié)上。

我們的演示應用

現(xiàn)在,我們已經(jīng)確定了如何使用Vue測試庫在Vue中完成測試,我們將繼續(xù)測試演示應用程序。但是首先,我們將充實應用程序的UI。我們的演示應用程序是一個產(chǎn)品的簡單結帳頁面。我們將測試用戶是否可以在結帳前增加產(chǎn)品的數(shù)量,他/她是否可以看到產(chǎn)品名稱和價格,等等。讓我們開始吧。

首先,在components /目錄中創(chuàng)建一個名為checkout的新Vue組件,并將以下代碼段添加到其中:

<template>
<div class="checkout">
<h1>{{ product.name }} - <span data-testid="finalPrice">${{ product.price }}</span></h1>
<div class="quantity-wrapper">
<div>
<label for="quanity">Quantity</label>
<input type="number" v-model="quantity" name="quantity" class="quantity-input" />
</div>
<div>
<button @click="incrementQuantity" class="quantity-btn">+</button>
<button @click="decrementQuantity" class="quantity-btn">-</button>
</div>
</div>
<p>final price - $<span data-testId="finalPrice">{{ finalPrice }}</span></p>
<button @click="checkout" class="checkout-btn">Checkout</button>
</div>
</template>
<script>
export default {
data() {
return {
quantity: 1,
}
},
props: {
product: {
required: true
}
},
computed: {
finalPrice() {
return this.product.price * this.quantity
}
},
methods: {
incrementQuantity() {
this.quantity++;
},
decrementQuantity() {
if (this.quantity == 1) return;
this.quantity--;
},
checkout() {

}
}
}
</script>

<style scoped>
.quantity-wrapper {
margin: 2em auto;
width: 50%;
display: flex;
justify-content: center;
}

.quantity-wrapper div {
margin-right: 2em;
}
.quantity-input {
margin-left: 0.5em;
}
.quantity-wrapper button {
margin-right: 1em;
}
button {
cursor: pointer;
}
</style>

再將App.vue改成:

<template>
<div id="app">
<check-out :product="product" />
</div>
</template>

<script>
import CheckOut from './components/CheckOut.vue'

export default {
name: 'App',
data() {
return {
product: {
name: 'Shure Mic SM7B',
price: 200,
}
}
},
components: {
CheckOut
}
}
</script>

<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

對于我們的測試用例,我們將測試以下場景:

  • 用戶可以看到產(chǎn)品名稱嗎?
  • 用戶能看到產(chǎn)品價格嗎?
  • 用戶能否增加產(chǎn)品數(shù)量?
  • 用戶可以減少產(chǎn)品數(shù)量嗎?
  • 用戶可以隨著數(shù)量的變化實時查看更新的總價嗎?

我們的UI界面是非常簡約,因為重點在于如何使用Vue測試庫進行測試。讓我們繼續(xù)測試Checkout組件。在tests / unit /中創(chuàng)建一個名為checkout.spec.js的新測試文件內容如下:

import { render, fireEvent } from '@testing-library/vue'
import CheckOut from '@/components/CheckOut.vue'

const product = {
name: 'Korg Kronos',
price: 1200
}
describe('Checkout.vue', () => {
// tests goes here
})

我們的第一個測試用例將是檢查產(chǎn)品名稱是否正常顯示。我們將這樣做:

it('renders product name', () => {
const { getByText } = render(CheckOut, {
props: { product }
})

getByText(product.name)
})

然后,我們將檢查產(chǎn)品價格是否正常顯示:

it('renders product price', () => {
const { getByText } = render(CheckOut, {
props: { product }
})

getByText("$" + product.price)
})

繼續(xù)測試Checkout組件,我們將使用getByDisplayValue helper方法測試用戶看到的初始數(shù)量是否為1:

it('renders initial quantity as 1', () => {
const { getByDisplayValue, getByText } = render(CheckOut, {
props: { product }
})
getByDisplayValue(1)
})

接下來,我們將檢查當用戶點擊增加產(chǎn)品數(shù)量的按鈕時,是否增加了產(chǎn)品數(shù)量。為此,我們將使用Vue測試庫中的fireEvent實用程序觸發(fā)單擊事件。下面是完整的實現(xiàn)

it('increments product quantity', async () => {
const { getByDisplayValue, getByText } = render(CheckOut, {
props: { product }
})
const incrementQuantityButton = getByText('+')
await fireEvent.click(incrementQuantityButton)
getByDisplayValue(2)
})

當數(shù)量為1時,我們將做同樣的遞減操作-在這種情況下,我們不減少數(shù)量。

當數(shù)量為2時,讓我們編寫兩個測試用例。

it('does not decrement quantity when quanty is 1', async () => {
const { getByDisplayValue, getByText } = render(CheckOut, {
props: { product }
})
const decrementQuantityButton = getByText('-')
await fireEvent.click(decrementQuantityButton)
getByDisplayValue(1)
})

it('decrement quantity when quantity greater than 1', async () => {
const { getByDisplayValue, getByText } = render(CheckOut, {
props: { product }
})
const incrementQuantityButton = getByText('+')
const decrementQuantityButton = getByText('-')
await fireEvent.click(incrementQuantityButton)
await fireEvent.click(decrementQuantityButton)
getByDisplayValue(1)
})

最后,我們將測試是否可以點擊數(shù)量增減來查看最終價格是否正常顯示給用戶。

在整個測試案例中,您會注意到,我們更加專注于從用戶肉眼能看到并與之交互的角度編寫測試。以這種方式編寫測試可以確保我們測試的是對應用的用戶比較重要的東西。

總結

本文介紹的于測試Vue應用程序的庫和方法,稱為Vue測試庫,我們將了解如何設置它以及如何使用它編寫Vue組件的測試用例。

您可以在GitHub上找到演示項目  https://github.com/DominusKelvin/vue-testing-library-demo

*原文鏈接: https://www.smashingmagazine.com/2020/11/vue-applications-vue-testing-library/

責任編輯:武曉燕 來源: 新鈦云服
相關推薦

2009-08-27 11:40:43

ibmdw云計算

2009-07-01 18:24:59

JSP應用程序JMeter

2023-08-11 07:59:15

2023-03-02 09:29:21

Evilgrade模塊化框架

2015-02-26 09:19:00

2021-07-15 18:01:14

虛擬化應用測試軟件開發(fā)

2010-11-11 14:38:37

2011-07-28 15:47:20

IOS 程序 測試

2022-09-01 16:39:03

測試Web移動應用

2021-07-05 09:22:20

Vue.js應用程序測試工具

2011-08-22 09:59:16

2023-09-01 00:05:40

2015-02-11 09:15:46

云部署嵌套虛擬化PaaS

2022-02-21 14:41:21

APIWeb安全

2021-09-07 10:24:36

Vue應用程序Web Workers

2016-10-18 10:22:21

測試移動

2009-06-02 16:05:04

Struts驅動開發(fā)

2021-06-30 19:48:21

前端自動化測試Vue 應用

2024-08-07 08:40:46

2009-12-16 15:39:37

Visual Stud
點贊
收藏

51CTO技術棧公眾號

黄色亚洲精品| 日韩不卡在线视频| 国产精品久久久久久亚洲毛片| 国产精品久久久久久一区二区| 国产喷水在线观看| xvideos.蜜桃一区二区| 91久久人澡人人添人人爽欧美 | 网曝91综合精品门事件在线| 色琪琪一区二区三区亚洲区| 中国一级黄色录像| 手机看片福利永久| 麻豆精品在线视频| 亚州成人av在线| 成人欧美一区二区三区黑人一 | 日韩精品第一页| www国产一区| 蜜桃视频一区二区| 韩日欧美一区二区| 蜜桃av.com| 小说区图片区色综合区| 91精品国产美女浴室洗澡无遮挡| 成人久久久久久久久| v片在线观看| 国产亚洲精品福利| 国产精品二区在线观看| 亚洲一区二区色| 午夜在线视频观看日韩17c| www日韩欧美| 日本少妇xxxxx| 欧美人与动xxxxz0oz| 3d成人h动漫网站入口| 毛葺葺老太做受视频| 岛国毛片av在线| 亚洲人妖av一区二区| 日本不卡高清视频一区| 亚洲 欧美 激情 另类| 国产xxx精品视频大全| 成人在线中文字幕| 亚洲中文无码av在线| 久久国产精品99国产| 久久久久久18| 国产精品成人国产乱| 欧美a级在线| 欧美尺度大的性做爰视频| 综合 欧美 亚洲日本| 欧美日韩一区二区综合| 亚洲欧洲日韩国产| 久久人人爽人人爽人人片| 精品成人自拍视频| 欧美精品一区二区三区蜜臀| 在线播放av网址| 亚洲精品视频一二三区| 日韩三级精品电影久久久| 国产又黄又猛的视频| 色婷婷成人网| 欧美精品777| 国产高清av片| 久久久国产精品入口麻豆| 91精品麻豆日日躁夜夜躁| 亚洲天堂伊人网| 精品一区91| 日韩一区二区三区视频在线观看| 97免费公开视频| 视频国产精品| 亚洲国产另类久久精品| 私密视频在线观看| 一本久久青青| 中文字幕日韩有码| 欧美三级黄色大片| 欧美午夜免费影院| 青青草一区二区| 天天爱天天做天天爽| 青青青伊人色综合久久| 成人h猎奇视频网站| 国产福利小视频| 成人性生交大片免费看中文| 精品日韩电影| av福利在线播放| 亚洲精品高清在线| 天堂…中文在线最新版在线| 综合在线影院| 91精品国产综合久久久久| 一级黄色大片免费看| 免费福利视频一区| 中文字幕亚洲一区| 国产小视频在线观看免费| 亚洲综合精品在线| 97视频在线观看视频免费视频| 黑人性生活视频| 国产美女撒尿一区二区| 亚洲欧美国内爽妇网| www.99re6| 亚洲精品美女91| 国产精品一区二区久久久| 国产高清在线观看视频| 99久精品国产| 中文字幕乱码一区二区三区| 丁香花在线高清完整版视频| 欧美视频在线一区二区三区 | 亚洲伊人成人网| 蜜桃一区二区三区四区| 不卡视频一区| 成年网站在线| 亚洲伊人色欲综合网| 情侣黄网站免费看| 日韩三级久久| 永久免费看mv网站入口亚洲| 免费在线观看日韩| 奇米四色…亚洲| 精品乱码一区二区三区| 黄色网页网址在线免费| 欧美性生交大片免网| 国模大尺度视频| 日韩片欧美片| 日韩av第一页| 日韩在线观看视频一区| 亚洲三级在线免费观看| 成人在线激情网| 红杏成人性视频免费看| 久热在线中文字幕色999舞| 中文字幕高清在线免费播放| 丰满白嫩尤物一区二区| 日本久久高清视频| 成人av色网站| 亚洲男人天堂古典| 日本中文字幕网| 国产成人午夜精品5599| 99re99热| 伊人久久一区| 色偷偷偷亚洲综合网另类| 国产一级片毛片| 成人免费观看视频| 精品国产一区二区三区在线| 欧美少妇激情| 一区二区欧美久久| 亚洲 欧美 中文字幕| 91一区一区三区| 成人免费观看cn| 伊人精品久久| 欧美激情乱人伦| av片免费播放| 亚洲伦理在线精品| 欧美又黄又嫩大片a级| 欧美成人直播| 91精品视频免费| 免费看美女视频在线网站| 欧美影院精品一区| 国产精品国产三级国产专业不| 国产伦理一区| 久久久久se| 欧美18—19sex性hd| 精品中文字幕久久久久久| 99免费在线观看| 99精品久久99久久久久| 国产原创中文在线观看| 欧美变态挠脚心| 欧美亚洲在线观看| 欧美新色视频| 色婷婷av一区二区三区大白胸 | 国产www精品| 蜜桃免费在线| 欧美日韩综合在线免费观看| www.xx日本| 国产精品一区二区在线播放| 日本黄色片一级片| 亚洲福利天堂| 国产精品一区二区久久久久| bestiality新另类大全| 精品蜜桃在线看| 国产成人无码精品久在线观看 | 欧美高清一区二区| 在线成人视屏| 久久亚洲一区二区三区四区五区高| 国产a级免费视频| 午夜私人影院久久久久| 色噜噜日韩精品欧美一区二区| 青娱乐精品视频| 91免费版看片| 蜜桃tv一区二区三区| 国产欧美一区二区三区视频 | 午夜18视频在线观看| 色拍拍在线精品视频8848| 少妇视频一区二区| 懂色av噜噜一区二区三区av| 日韩黄色片视频| 99精品视频精品精品视频| 99视频日韩| japanese23hdxxxx日韩| 欧美成人精品激情在线观看 | 久久精品免费一区二区| 日韩电影在线视频| 国产激情美女久久久久久吹潮| 欧美大片免费观看网址| 欧美成年人视频| 国产乱子伦三级在线播放 | 奇米影视888狠狠狠777不卡| 欧美日韩高清影院| 国产在线精品观看| 国产精品久久夜| 污片免费在线观看| 精品在线播放免费| 成人观看免费完整观看| 亚洲色图88| 四虎影视永久免费在线观看一区二区三区| 三级欧美日韩| 成人激情视频免费在线| 625成人欧美午夜电影| 欧美精品一本久久男人的天堂| 国产永久av在线| 亚洲成人av在线播放| 亚洲一区二区视频在线播放| 欧美性xxxxx极品| 久久这里只有精品国产| 国产精品乱码人人做人人爱| 国产肉体xxxx裸体784大胆| 国产精品一区二区在线播放| 男操女免费网站| 免费看黄裸体一级大秀欧美| 国产精品视频网站在线观看| 99精品小视频| 亚洲一区二区高清视频| 亚洲人成网www| 精品一区二区久久久久久久网站| 精品欧美视频| 亚洲精品女av网站| 国产精品第一| 国产精品成人一区| 欧美黑人巨大xxxxx| 97精品国产91久久久久久| 宅男网站在线免费观看| 日韩在线观看免费全| seseavlu视频在线| 亚洲一区第一页| 欧美另类自拍| 亚洲精品中文字幕av| 五月婷中文字幕| 亚洲国产99精品国自产| 丰满少妇被猛烈进入| 日韩西西人体444www| 91精品在线视频观看| 欧美日韩免费观看一区二区三区| 手机看片久久久| 欧美日韩亚洲视频| 精品美女久久久久| 天天综合色天天| 激情五月色婷婷| 偷拍日韩校园综合在线| 久草国产精品视频| 欧美日韩在线第一页| 国产超碰人人爽人人做人人爱| 精品久久久久国产| 天天综合天天干| 欧美日韩国产一区二区| 国产无人区码熟妇毛片多| 午夜影院在线观看欧美| 久久久久久91亚洲精品中文字幕| 色噜噜狠狠色综合欧洲selulu| 午夜精品一区二| 欧美视频自拍偷拍| 国产精品一品二区三区的使用体验| 3751色影院一区二区三区| 国产区精品在线| 欧美大黄免费观看| 少妇av在线播放| 亚洲美女中文字幕| av大片在线看| 久久视频免费在线播放| 黄页在线观看免费| 国产91精品久久久久| av在线一区不卡| 成人激情电影一区二区| 高潮久久久久久久久久久久久久| 狠狠干一区二区| 成人3d动漫在线观看| 亚洲国产精品影视| 亚洲精品裸体| 婷婷免费在线观看| 国产激情91久久精品导航| 亚洲精品乱码久久| 国产精品午夜春色av| 曰本女人与公拘交酡| 欧美日韩亚洲高清| 中国黄色一级视频| 日韩免费成人网| 国产大片在线免费观看| 九九久久久久久久久激情| av今日在线| 国产精品视频免费在线观看| 综合成人在线| 亚欧精品在线| 精品不卡视频| 亚洲精品www.| 91小视频在线免费看| 中日韩一级黄色片| 欧美日韩激情小视频| 一级黄色大片网站| 亚洲国产精品字幕| 哥也色在线视频| 日韩av理论片| 国产精品任我爽爆在线播放| 亚洲国产一区二区精品视频| 亚洲日本黄色| 国产大片一区二区三区| 国产亚洲欧美日韩在线一区| 欧美激情精品久久| 欧美性欧美巨大黑白大战| 亚洲精品字幕在线观看| 综合网中文字幕| 免费在线小视频| 97伦理在线四区| 成人黄色av| 国产视频九色蝌蚪| 国产成人精品综合在线观看 | 日韩欧美综合| 青青草原av在线播放| 国产91色综合久久免费分享| 激情高潮到大叫狂喷水| 91黄色免费观看| 亚洲三区在线观看无套内射| 欧美第一黄色网| 成人综合日日夜夜| 亚洲高清123| 日韩综合在线视频| 7788色淫网站小说| 亚洲一区二区在线视频| 国产又黄又粗又长| 中文字幕国产亚洲| 欧美xxx视频| 久久天天狠狠| 国产一区二区你懂的| 野战少妇38p| 一区二区三区蜜桃网| 国产成人三级在线播放| 久久亚洲国产精品成人av秋霞| 成人做爰免费视频免费看| 欧美日韩精品免费看| 国产亚洲网站| 亚州av综合色区无码一区| 亚洲国产aⅴ成人精品无吗| 精品久久久免费视频| 欧美精品免费播放| 亚洲精品不卡在线观看| 久久久天堂国产精品| 国产高清不卡二三区| 免费一级全黄少妇性色生活片| 91精品婷婷国产综合久久竹菊| 免费人成在线观看播放视频| 成人性生交大片免费看视频直播| 欧美好骚综合网| 992kp免费看片| 亚洲精品国产第一综合99久久| 国产欧美一级片| 欧美国产日韩一区二区三区| 日韩最新av| 少妇高潮毛片色欲ava片| 久久欧美一区二区| 国产情侣免费视频| 日韩视频免费看| 91精品尤物| 国产高清精品在线观看| 国产日本亚洲高清| 91国偷自产中文字幕久久| 久久久999国产精品| 亚洲va欧美va人人爽成人影院| 人妻激情另类乱人伦人妻| 成人app下载| 好吊色在线视频| 按摩亚洲人久久| 成人av综合网| 一级黄色香蕉视频| 亚洲欧美电影一区二区| 韩国av免费在线| 国产成人精品久久亚洲高清不卡| 久久电影院7| 人妻 丝袜美腿 中文字幕| 欧美性jizz18性欧美| 秋霞午夜理伦电影在线观看| av在线不卡一区| 久久久精品五月天| 亚洲xxxx3d动漫| 亚洲精品国产综合久久| 成人福利片在线| www.好吊操| 国产欧美日韩综合| www.久久久久久| 日本道色综合久久影院| 99久久精品费精品国产| 超碰caoprom| 欧美日韩一区国产| 97超碰免费在线| 亚洲午夜精品久久久久久浪潮| 成人一区二区三区在线观看| 一级片在线观看免费| 色在人av网站天堂精品| 欧美精品尤物在线观看| 免费观看污网站| 欧美精品tushy高清| 日本免费久久| 久草免费福利在线| 国产精品久久久久久亚洲毛片|