日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET重构—单元测试重构

發布時間:2025/5/22 asp.net 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET重构—单元测试重构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀目錄:

  • 1.開篇介紹

  • 2.單元測試、測試用例代碼重復問題(大量使用重復的Mock對象及測試數據)

    • 2.1.單元測試的繼承體系(利用超類來減少Mock對象的使用)

      • 2.1.1.公用的MOCK對象;

      • 2.1.2.公用的MOCK行為;

      • 2.1.3.公用的MOCK數據;



  • 3.LINQ表達式的重構寫法(將必要的LINQ寫成普通的Function穿插在LINQ表達式中)

  • 4.面向特定領域的單元測試框架(一切原則即是領域驅動)

    • 4.1.分散測試邏輯、日志記錄(讓測試邏輯可以重組,記錄形式為領域模型)

    • 4.2.測試用例的數據重用(為自動化測試準備固定數據,建立Assert的比較測試數據)


1】開篇介紹

最近一段時間結束了一個Sprint,在這次的開發當中有些東西覺得還不錯有總結分享的價值,所以整理成本文;

重構已是老生常談的話題,我們或多或少對它有所了解但是對它的深刻理解恐怕需要一段實踐過后才能體會到;提到重構就不得不提為它保駕護航的大功臣單元測試,重構能有今天的風光影響力完全少不了單元測試的功勞;最近一段時間寫單元測試用例的時間遠超過我寫邏輯代碼的時間和多的多的代碼量,這是為什么?我一開始很難給自己一個理由去做好這件事,心態上還是轉變不過來,可是每當我心浮氣躁的時候它總能給我點驚喜,讓我繼續下去,天生具有好奇心的程序員怎么會就此結束呢,只有到達了一扇門之后我們回過頭來看一下走的路才能真正的明白這是條對的路還是錯的路;

單元測試簡單寫起來沒有什么太大問題,但是我們不僅為了達到代碼的100%覆蓋還要到達到邏輯的100%覆蓋,代碼的覆蓋不代表邏輯的覆蓋;一個簡單的邏輯判斷雖然只有一行代碼,但是里面可能會有正反向很多種邏輯在里面;比如:Order.ToString()簡單的代碼,想要覆蓋很簡單,只要對象不為空都能正確的覆蓋到,但是如果我們沒有測試到它為NULL的情況下的邊界邏輯,這個時候我們就會漏掉這種可能會導致BUG的邏輯路徑;所以我們會盡可能的多去寫用例來達到最終的理想效果;

(總之把單元測試的所有精力集中在可能會出問題的地方,也是自己最擔心的地方,這個地方通常是邏輯比較復雜的地方;)

2】單元測試、測試用例代碼重復問題(大量使用重復的Mock對象及測試數據)

單元測試代碼中最常見的代碼就是Mock或者Fake接口邏輯,那么在一個具有上百個用例覆蓋的代碼中會同時使用到一組相關的Mock接口對象,這無形中增加了我們編寫單元測試的效率給后期的維護測試用例帶來了很大的隱患及工作量;

單元測試代碼的組成都是按照用例來劃分,一個用例可以用來包括一個單一入口的所有邏輯也可以是一個判斷分支的部分邏輯;為了構造一個能完美覆蓋的代碼步驟,我們需要構建測試數據、Mock接口,劃分執行順序等等,那么一旦被測試代碼發生一點點的變化都會很大程度上影響測試代碼,畢竟測試代碼都是步步依賴的;

那么我們應該最大程度的限制由于被測試代碼的變動而引起的測試代碼的變動,這個時候我們應該將重構應用到測試代碼中;

2.1】單元測試的繼承體系(利用超類來減少Mock對象的使用)

將多個相關的測試用例代碼通過超類的方式關聯起來統一管理將大大減少重復代碼的構建;就跟我們重構普通代碼一樣,將多個類之間共享的邏輯代碼或者對象提取出來放到基類中;這當然也同樣適用于測試代碼,只不過需要控制一些更測試相關的邏輯;

其實大部分重復的代碼就是Mock接口的過程,我們需要將它的Mock過程精簡化,但是又不能太過于精簡,一切精簡的過程都是需要犧牲可觀察性;我們需要適當的平衡提取出來的對象個數,將它們放入基類中,然后在Mock的時候能通過一個簡單的方法就能獲取到一個Mock過后的對象;

下面我們來看一下提取公共部分到基類的一個 簡單過程,當然對于大項目而言不一定具有說服力,就當拋磚引玉吧;

2.1.1】公用的Mock對象

首要的任務就是將公共的Mock接口提取出來,因為這一類接口是肯定會在各個用例中共享的,提取過程過主要分為兩個重構過程;

第一:將用例中的公用接口放到類的聲明中,供所有用例使用;

第二:如果需要將公用接口提供給其他的單元測試使用,就需要提取出相關的測試基類;

我們先來看一下第一個過程,看一下測試示例代碼:

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ namespace UnitTestRefactoring {public class OrderService{private IServiceConnection ServiceConnection;private IServiceReader ServiceReader;private IServiceWriter ServiceWrite;public OrderService(IServiceConnection connection, IServiceReader reader, IServiceWriter writer){this.ServiceConnection = connection;this.ServiceReader = reader;this.ServiceWrite = writer;}public bool GetOrders(string orderId){if (string.IsNullOrWhiteSpace(orderId))return false;return true;}} }

這個類表示遠程Order服務,只有一個方法GetOrders,該方法可以根據OrderId來查詢Order信息,為了簡單起見,如果返回true說明服務調用成功,如果返回false表示調用失敗;其中構造函數包含了三個接口,分別用來表示不同用途的接口抽象;IServiceConnection表示對遠程服務鏈接的抽象,IServiceReader表示對不同服務接口讀取的抽象,IServiceWriter表示對不同服務接口寫入的抽象;這么做可以最大化的分解耦合;

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; using UnitTestRefactoring; namespace UnitTestRefactoring.UnitTests {[TestClass]public class OrderService_UnitTests{[TestMethod]public void OrderService_GetOrders_NormalFlows(){IServiceConnection mockServiceConnection = Substitute.For<IServiceConnection>();IServiceReader mockServiceReader = Substitute.For<IServiceReader>();IServiceWriter mockServiceWriter = Substitute.For<IServiceWriter>();OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testOrderService.GetOrders("10293884");Assert.AreEqual(true, testResult);}[TestMethod]public void OrderService_GetOrders_OrderIdIsNull(){IServiceConnection mockServiceConnection = Substitute.For<IServiceConnection>();IServiceReader mockServiceReader = Substitute.For<IServiceReader>();IServiceWriter mockServiceWriter = Substitute.For<IServiceWriter>();OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testOrderService.GetOrders(string.Empty);Assert.AreEqual(false, testResult);}} }

這個單元測試類是專門用來測試剛才那個OrderService的,里面包括兩個GetOrders方法的測試用例;可以一目了然的看見,這兩個測試用例代碼中都包含了對測試類的構造函數的參數接口Mock代碼;

圖1:

像這種簡單的情況下,我們只需要將公共的部分拿出來放到測試的類中聲明,就可以公用這塊對象;

圖2:

這樣可以解決內部重復問題,但是這里需要小心的地方是,當我們在不同的用例之間共享部分Mock邏輯的時候可能會出現問題;比如我們在OrderService_GetOrders_NormalFlows用例中,對IServiceConnection接口進行了部分行為的Mock但是當執行到OrderService_GetOrders_OrderIdIsNull用例時可能是用的我們上一次的Mock邏輯;所以這里需要注意一下,當然如果設計合理的話是不太可能會出現這種問題的;單一職責原則只要滿足我們的接口是不會包含其他的邏輯在里面,也不會出現在不同的用例之間共存相同的接口邏輯;同時也滿足接口隔離原則,就會更加對單元測試有利;

我們接著看一下第二個過程,看一下測試示例代碼:

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ namespace UnitTestRefactoring {public class ProductService{private IServiceConnection ServiceConnection;private IServiceReader ServiceReader;private IServiceWriter ServiceWrite;public ProductService(IServiceConnection connection, IServiceReader reader, IServiceWriter writer){this.ServiceConnection = connection;this.ServiceReader = reader;this.ServiceWrite = writer;}public bool GetProduct(string productId){if (string.IsNullOrWhiteSpace(productId))return false;return true;}} }

這個是表示Product服務,構造函數中同樣和之前的OrderService一樣的參數列表,然后就是一個簡單的GetProduct方法;

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; using UnitTestRefactoring; namespace UnitTestRefactoring.UnitTests {[TestClass]public class ProductService_UnitTests{IServiceConnection mockServiceConnection = Substitute.For<IServiceConnection>();IServiceReader mockServiceReader = Substitute.For<IServiceReader>();IServiceWriter mockServiceWriter = Substitute.For<IServiceWriter>();[TestMethod]public void ProductService_GetProduct_NormalFlows(){ProductService testProductService = new ProductService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testProductService.GetProduct("5475684684");Assert.AreEqual(true, testResult);}[TestMethod]public void ProductService_GetProduct_ProductIsNull(){ProductService testProductService = new ProductService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testProductService.GetProduct(string.Empty);Assert.AreEqual(false, testResult);}} }

這是單元測試類,沒有什么特別的,跟之前的OrderService一樣的邏輯;是不是發現兩個測試類都在公用一組相關的接口,這里就需要我們將他們提取出來放入基類中;

using NSubstitute; namespace UnitTestRefactoring.UnitTests {public abstract class ServiceBaseUnitTestClass{protected IServiceConnection mockServiceConnection = Substitute.For<IServiceConnection>();protected IServiceReader mockServiceReader = Substitute.For<IServiceReader>();protected IServiceWriter mockServiceWriter = Substitute.For<IServiceWriter>();} }

提取出來的測試基類;

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestRefactoring.UnitTests {[TestClass]public class ProductService_UnitTests : ServiceBaseUnitTestClass{[TestMethod]public void ProductService_GetProduct_NormalFlows(){ProductService testProductService = new ProductService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testProductService.GetProduct("5475684684");Assert.AreEqual(true, testResult);}[TestMethod]public void ProductService_GetProduct_ProductIsNull(){ProductService testProductService = new ProductService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testProductService.GetProduct(string.Empty);Assert.AreEqual(false, testResult);}} }

ProductService_UnitTests類;

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestRefactoring.UnitTests {[TestClass]public class OrderService_UnitTests : ServiceBaseUnitTestClass{[TestMethod]public void OrderService_GetOrders_NormalFlows(){OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testOrderService.GetOrders("10293884");Assert.AreEqual(true, testResult);}[TestMethod]public void OrderService_GetOrders_OrderIdIsNull(){OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testOrderService.GetOrders(string.Empty);Assert.AreEqual(false, testResult);}} }

OrderService_UnitTests 類;

提取出來的抽象基類能在后面的單元測試重構中幫很大忙,也是為了后面的面向特定領域的單元測試框架做要基礎工作;由于不同的單元測試類具有不同的基類,這里需要我們自己的分析抽象,比如這里跟Service相關的,可能還有跟Order處理流程相關的,相同的一組接口也只能出現在相關的測試類中;

2.1.2】公用的Mock行為

前面2.1.1】小結,我們講了Mock接口對象的重構,這一節我們將來分析一下關于Mock對象行為的重構;在上面的IServiceConnection中我們加入了一個Open方法,用來打開遠程鏈接;

/*============================================================================== * Author:深度訓練 * Create time: 2013-10-06 * Blog Address:http://www.cnblogs.com/wangiqngpei557/ * Author Description:特定領域軟件工程實踐; * ==============================================================================*/ namespace UnitTestRefactoring {public interface IServiceConnection{bool Open();} }

如果返回true表示遠程鏈接成功建立并且已經成功打開,如果返回false表示鏈接失敗;那么在每一個用例代碼中,只要使用到了IServiceConnection接口都會需要Mock接口的Open方法;

[TestMethod]public void OrderService_GetOrders_NormalFlows(){mockServiceConnection.Open().Returns(true);mockServiceConnection.Close().Returns(true);OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testOrderService.GetOrders("10293884");Assert.AreEqual(true, testResult);}[TestMethod]public void OrderService_GetOrders_OrderIdIsNull(){mockServiceConnection.Open().Returns(true);mockServiceConnection.Close().Returns(false);OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);bool testResult = testOrderService.GetOrders(string.Empty);Assert.AreEqual(false, testResult);}

類似這樣的代碼會很多,如果這個時候我們需要每次都在用例中對三個接口都進行類似的重復代碼也算是一種地效率的重復勞動,并且在后面的改動中會很費事;所以這個時候抽象出來的基類就派上用場了,我們可以將構建接口的邏輯代碼放入基類中進行統一構造;

public abstract class ServiceBaseUnitTestClass {protected IServiceConnection mockServiceConnection = Substitute.For<IServiceConnection>();protected IServiceReader mockServiceReader = Substitute.For<IServiceReader>();protected IServiceWriter mockServiceWriter = Substitute.For<IServiceWriter>();protected void InitMockServiceConnection(){this.mockServiceConnection.Open().Returns(true);this.mockServiceConnection.Close().Returns(true);} }

this.InitMockServiceConnection(); OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);

這樣在需要修改接口的時候很容易找到,可能這里兩三個用例,而且用例代碼也很簡單所以看起來沒有太多的必要,但是實際情況沒有這么簡單;

2.1.3】公用的Mock數據

說到Mock數據,其實需要解釋一下,準確點講是Mock時需要用到的測試數據,它是碎片化的簡單的測試數據;它也同樣存在著和2.1.2】小結的修改問題,實踐告訴我單元測試代碼在整個開發周期中最易被修改,當我們簡單的修改一個邏輯之后就需要面臨著大面積的單元測試代碼修改而測試數據修改占比重最大;

因為測試數據相對沒有靈活性,但是測試數據的結構易發生由需求帶來的變化;比如實體的屬性類型,在我們編寫實體測試數據的時候我們用的是String,一段時間過后,實體發生變化很正常;領域模型在開發周期中被修改的次數那是無法估計,因為我們的項目中是需要迭代重構的,我們需要重構來為我們的項目保證最高的質量;

所以單元測試修改的次數和重構的次數應該是成1:0的這樣的比例,修改的范圍那就不是1:10了,有時候甚至是幾何的倍數;

OrderService中的AddOrder方法:

public bool AddOrder(Order order){if (string.IsNullOrWhiteSpace(order.OrderId))return false;return true;}

OrderService_AddOrder測試代碼:

[TestMethod]public void OrderService_AddOrder_NormalFlows(){this.InitMockServiceConnection();OrderService testOrderService = new OrderService(this.mockServiceConnection, this.mockServiceReader, this.mockServiceWriter);Order testOrder = new Order() { OrderId = "123456", SubmitDT = DateTime.Now };bool testResult = testOrderService.AddOrder(testOrder);Assert.AreEqual(true, testResult);}[TestMethod]public void OrderService_AddOrder_OrderIdIsNull(){this.InitMockServiceConnection();OrderService testOrderService = new OrderService(this.mockServiceConnection, this.mockServiceReader, this.mockServiceWriter);Order testOrder = new Order() { OrderId = string.Empty, SubmitDT = DateTime.Now };bool testResult = testOrderService.AddOrder(testOrder);Assert.AreEqual(false, testResult);}

這是兩個用例,用來對AddOrder方法進行測試,里面都包含了一條Order testOrder = new Order() 這樣的測試數據的構造;Order實體是一個比較簡單的對象,屬性也就只有兩個,但是真實環境中不會這么簡單,會有幾十個字段都需要進行測試驗證,再加上N多個用例,會使相同的代碼變的很多;

那么我們同樣需要將這部分的代碼提取出來放到基類中去,適當的留有空間讓用例中修改的特殊的字段;

完整的實體構造:

Order testOrder = this.InitNormalOrder();

測試OrderId為空的邏輯,需要手動設置為String.Empty:

Order testOrder = this.InitNormalOrder(); testOrder.OrderId = string.Empty;

這樣慢慢的就會形成抗變化的測試代碼結構,盡管一開始很別扭,將一些直觀的對象提取出來放入一眼看不見的地方是有點不太舒服,但是長遠看來值得這么做;

3】LINQ表達式的重構寫法(將必要的LINQ寫成普通的Function穿插在LINQ表達式中)

在使用LINQ語法編寫代碼的時候,現在發現最大的問題就是單元測試不太方便,LINQ寫起來很方便,確實是個很不錯的編程思想,在面對集合類型的操作時確實是無法形容的優雅,但是面對單元測試的問題需要解決才行,所以需要我們平衡一下在什么情況下需要將LINQ表達式替換成普通的Function來支持;

LINQ在面對集合類型的時候,能發揮很大的作用;不僅在Linq to Object中,在其他的Linq to Provider中都能在LINQ中找到了合適的使用之地;比如在對遠程Service進行LINQ設計的時候,我們都是按照這樣的方式進行編寫,但是就怕LINQ中帶有邏輯判斷的表達式,這個時候就會在單元測試中總是無法覆蓋到的情況出現,所以就需要將它提取出來使用普通的函數進行替代;

我們來繼續看一下如果使用提取出來的函數解決鏈式的判斷,還是使用上面的OrderService為例:

public Order SelectByOrderId(string orderId) {List<Order> orders = new List<Order>(){new Order(){ OrderId="123", SubmitDT=DateTime.Now.AddDays(1)},new Order(){ OrderId="234"}};var list = orders.Where(order => order.OrderId == orderId && order.SubmitDT > DateTime.Now);if (list.Count() > 0)return list.ToList()[0];return null; }

這是一個根據OrderId獲取Order實例的方法,純粹為了演示;首先構造了一個測試集合,然后使用了Where擴展方法來選擇集合中滿足條件的Order;我們的重點是Where中的條件,條件的第一個表達式很簡單而第二個表達式是SubmitDT必須大于當前的日期,還會有很多類似這樣的判斷,這樣測試起來很困難,而且很難維護,所以我們有必要將他們提取出來;

public Order SelectByOrderId(string orderId) {List<Order> orders = new List<Order>(){new Order(){ OrderId="123", SubmitDT=DateTime.Now.AddDays(1)},new Order(){ OrderId="234"}};var list = orders.Where(order => IfOrderSubmitAndOrderId(order, orderId));if (list.Count() > 0)return list.ToList()[0];return null; } private bool IfOrderSubmitDt(Order order) {return order.SubmitDT > DateTime.Now; } private bool IfOrderSubmitAndOrderId(Order order, string orderId) {return order.OrderId == orderId && this.IfOrderSubmitDt(order); }

其實這很像企業架構模式中的規約模式,將規則對象化后就能隨便的控制他們,當然這里是提取出方法,如果是大型企業級項目對這些易變化的點是需要抽取出來的;

總之遇到這樣的情況就使用簡單的提取方法的方式將復雜的邏輯提取出來,這也是《重構》中的重構策略的首要的模式;

4.面向特定領域的單元測試框架(一切原則即是領域驅動)

領域驅動設計已經不是什么新鮮的話題了,它已經被我們或多或少的使用過,它強調一切從領域出發;那么特定領域單元測試框架是一個什么樣的框架呢,需要的價值在哪里;其實從特定領域開發框架,特定領域架構我們能簡單的體會到一絲意思,面向特定領域單元測試框架是在單元測試框架的基礎之上進行二次領域相關的封裝;比如:如何很好的將領域規則獨立起來,如果在單元測試中使用這些獨立起來的領域規則;

其實在軟件開發的任何一個角落都能找到領域驅動的影子,這也是為什么領域驅動會得到我們認可的重要因素;如果一切都圍繞著領域模型來的話,那么任何一個概念都不會牽強的,我們只有關注領域本身才能使軟件真的很有價值,而不是一堆代碼;

下面我們來簡單的看一下 面向特定領域測試框架 的兩個基本功能:

4.1.分散測試邏輯、日志記錄(讓測試邏輯可以重組,記錄形式為領域模型)

測試代碼執行到最后是需要對其執行的結果進行斷言的,如:Assert.IsTrue(testResult.SubmitDT > DateTime.Now);像這樣的一段代碼我們可以適當的包裝Assert.IsTrue方法,讓他在驗證這段邏輯的時候能識別出領域概念,比如:“Order的提交時間大于今天的時間”,我們可以從兩方面入手,一個是領域的抽象,一個是規則的分解;

如果這里的驗證不通過,我們實時的記錄領域的概念到日志系統,而不是報告那里代碼出問題,這樣就算不是自己寫的代碼都能一目了然;

4.2.測試用例的數據重用(為自動化測試準備固定數據,建立Assert的比較測試數據)

同樣比較重要的領域概念就是領域數據,領域數據也是單元測試中用例數據;為了能讓測試進行自動化測試,我們需要維護一組相對固定的測試數據來供測試程序運行;其實如果想最大化建立領域測試框架有必要開發一套專門的領域測試工具,它能夠實時的讀取真實數據進行Assert,也就更加的接近自動化測試;

但是單元測試也不需要對真實數據進行驗證,真實數據一般是集成測試的時候使用的,如果能用真實數據進行邏輯測試還是很有保障的;


作者:王清培

出處:http://wangqingpei557.blog.51cto.com/

本文版權歸作者和51CTO共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的.NET重构—单元测试重构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

黄色免费网站大全 | 日韩在线视 | 狠狠干.com | 九九热精品在线 | 最近日本中文字幕a | 久久久夜色 | 91麻豆产精品久久久久久 | 天天草视频| 在线不卡a | 亚洲91网站| 91传媒在线| 成人一级片视频 | 成人a v视频 | 六月丁香在线观看 | 九九有精品 | 日韩一区二区三区高清免费看看 | 色中文字幕在线观看 | 成年人免费电影 | 国产精品精品 | 丁香花中文字幕 | 成人黄色片在线播放 | 人人爽人人爱 | 中文字幕免费在线看 | 国产尤物在线 | 国产精品毛片一区二区在线 | 人人爽人人澡人人添人人人人 | 日韩成人看片 | 最近免费在线观看 | 亚洲精品综合欧美二区变态 | 国产高清永久免费 | 亚洲精品女人久久久 | 3d黄动漫免费看 | 亚洲一区二区三区miaa149 | 91大神精品视频在线观看 | 激情综合网五月婷婷 | 天天射天天做 | 国产精品色视频 | 日本久久不卡视频 | 99精品久久只有精品 | 五月婷婷电影网 | 亚洲天堂毛片 | 久久婷婷开心 | 91av免费在线观看 | 国产精品一区二区在线观看免费 | 91人人干 | 免费a级毛片在线看 | 亚洲精品美女在线 | 久久99国产精品久久99 | 欧美精彩视频在线观看 | 色先锋av资源中文字幕 | 夜夜操网 | 精品国产乱码久久久久久浪潮 | 欧美在线91 | 九九热只有这里有精品 | 婷婷在线网 | 精品国产免费久久 | 久久99偷拍视频 | 国产精品久久久久久久午夜片 | 久久成人一区二区 | 96久久欧美麻豆网站 | 精久久久久 | 黄色在线成人 | 黄色的视频网站 | 欧美激情第一区 | 综合色伊人 | 人人干人人搞 | 精品视频www| 免费观看全黄做爰大片国产 | av电影免费在线看 | 成人夜晚看av| 国产视频综合在线 | 一二三区av | 欧美精品久久久久a | 国产一级片免费观看 | 日本精品一区二区在线观看 | 国产精品一区在线观看 | 国产污视频在线观看 | 成人性生活大片 | 久久久久日本精品一区二区三区 | 麻豆一精品传二传媒短视频 | 国产精品九九九 | 欧美精品国产精品 | 国产精品自产拍在线观看桃花 | 黄色a大片 | 亚洲天天在线日亚洲洲精 | 欧美精品乱码99久久影院 | 欧美日韩在线观看一区 | 成年人免费在线看 | 午夜手机电影 | 精品国产自 | 天天天色综合a | 精品久久久久久久久久 | 中文字幕高清视频 | 国产亚洲日本 | 国产欧美综合在线观看 | 五月天高清欧美mv | 久久精品国产免费看久久精品 | 激情五月网站 | 狠狠网亚洲精品 | 久久tv | 国产高清视频免费观看 | 青青久草在线视频 | 国内精品久久久久久久久久 | 欧美专区国产专区 | 91九色精品国产 | 91丨九色丨蝌蚪丨老版 | 国产精品丝袜在线 | 免费黄色a级毛片 | 成 人 a v天堂| 欧美午夜视频在线 | av福利网址导航 | 三级黄色欧美 | 国产一级视频在线观看 | 99热九九这里只有精品10 | 手机看片99 | 久久另类小说 | 免费在线观看av电影 | 麻豆视传媒官网免费观看 | 国产又黄又爽又猛视频日本 | 久久精品视频4 | 丁香婷婷激情 | 欧美性黑人 | 日本在线观看黄色 | 日韩综合一区二区三区 | 在线观看91久久久久久 | 91av手机在线观看 | 永久免费毛片在线观看 | 天天插夜夜操 | 成人片在线播放 | 五月天综合网站 | 久久草精品 | 91中文字幕网 | 日韩三区在线观看 | 久久成熟 | 国内成人精品视频 | 国产日产亚洲精华av | 91麻豆精品国产午夜天堂 | 国产一区二区日本 | 国产精品1区2区在线观看 | 久久国产精品久久精品国产演员表 | 亚洲婷婷伊人 | 丰满少妇一级 | 久久免费看a级毛毛片 | 久久久污| 天天搞天天 | 丁香色婷婷 | 大荫蒂欧美视频另类xxxx | 亚洲视频在线视频 | 日韩最新av | 麻豆影视网站 | 成年人在线观看视频免费 | 国产视 | 成人久久视频 | 久久99精品久久久久久久久久久久 | 天天射综合网视频 | 国产在线精品区 | 国产999精品| 天天摸夜夜操 | 特级西西www44高清大胆图片 | 久久一级电影 | 精品人妖videos欧美人妖 | 丁香视频全集免费观看 | 免费观看性生活大片 | 免费观看一区二区 | 亚洲欧美日韩一级 | 久久久毛片 | 久久久午夜精品理论片中文字幕 | 国产精品久久久久久69 | 91女人18片女毛片60分钟 | 婷婷丁香七月 | 亚洲女同ⅹxx女同tv | 亚洲最新在线视频 | 黄色国产高清 | 91精品在线免费观看视频 | 欧美久久久久久久 | 中文字幕乱码视频 | 欧美91精品久久久久国产性生爱 | 天天综合网 天天 | 精品在线不卡 | 国产精品一区二区你懂的 | 精品国产免费人成在线观看 | 六月婷色 | 91精品视频在线观看免费 | 69夜色精品国产69乱 | 人人要人人澡人人爽人人dvd | 久久久久久久久久亚洲精品 | 日本久久免费视频 | 手机成人在线 | www.狠狠插.com | 亚洲精品中文在线观看 | 国产亚洲在线观看 | 亚洲在线成人精品 | 久久艹精品 | 午夜精品久久久久久久99无限制 | 四虎影视国产精品免费久久 | 国产成人精品一区二区三区福利 | 日本婷婷色 | 欧美色操 | 日韩欧美一区二区三区黑寡妇 | 日韩午夜精品福利 | 成人在线观看资源 | 久久精品波多野结衣 | 色噜噜在线观看 | 五月在线视频 | 精品国产自在精品国产精野外直播 | 色偷偷888欧美精品久久久 | 国产精美视频 | www.色com | 久久国产剧场电影 | 国产精品网站一区二区三区 | 久久理论电影 | 一区二区三区电影大全 | 偷拍精偷拍精品欧洲亚洲网站 | 免费在线一区二区三区 | 久久乐九色婷婷综合色狠狠182 | 精品国产一区二区在线 | 97av影院| 在线 日韩 av | 97超碰国产精品 | 亚洲v欧美v国产v在线观看 | 五月天激情综合 | 亚洲欧美视频在线 | 狠狠色丁香婷婷 | 日韩免费在线 | 97超碰资源网| 久久久99精品免费观看乱色 | 日韩中文在线播放 | 国产亚洲免费的视频看 | 在线观av | 日韩欧在线| 99热亚洲精品 | 999久久a精品合区久久久 | 色五丁香| 国产精品久久电影网 | 国产欧美在线一区 | 国产日韩欧美在线看 | 一区二区三区在线免费 | 久久伊人国产精品 | 久久久免费观看 | 国产精品一区二区三区观看 | 国产午夜精品av一区二区 | 91av在线视频免费观看 | 91精品免费看 | 久久歪歪 | 亚洲一区二区三区四区在线视频 | 久久99精品一区二区三区三区 | 九九色在线观看 | 国产又粗又猛又黄 | 亚洲精品视频在线观看免费 | 韩国av免费观看 | 亚av在线| 毛片精品免费在线观看 | 天天操天操| 草免费视频 | 又黄又网站 | 麻豆精品视频在线 | 808电影| 成人资源在线观看 | 一级黄色免费网站 | 色福利网 | 日韩一区视频在线 | 激情xxxx| 久日视频 | 91av电影在线 | 国产亚洲视频在线观看 | 久久99精品国产麻豆宅宅 | 欧美成人影音 | 国语黄色片 | 精品美女久久久久久免费 | 激情影院在线 | 国产无限资源在线观看 | 四虎国产精品永久在线国在线 | 韩日精品在线 | 婷婷六月天在线 | www操操操 | 亚洲一区视频免费观看 | 97成人在线 | 成人在线你懂得 | 麻豆极品 | 中文字幕乱在线伦视频中文字幕乱码在线 | 天天看天天干天天操 | 国产九九九精品视频 | 日韩在线一区二区免费 | 亚洲精品一区二区三区在线观看 | 国产成人一区二区在线观看 | 久久综合久色欧美综合狠狠 | 天堂va在线观看 | 在线精品视频免费播放 | 国产精品av电影 | 色婷婷99 | 国产成人福利 | 久久午夜网| 久久男人视频 | 97小视频 | 韩国av免费在线观看 | 欧美久久久影院 | www在线免费观看 | 欧美a级在线| 久久久国产精品人人片99精片欧美一 | 国产精品毛片一区视频播不卡 | 国产精品爽爽久久久久久蜜臀 | 91福利影院在线观看 | 欧美激情综合五月色丁香 | 欧美精品v国产精品 | 一本一道久久a久久精品蜜桃 | 国产成人一区在线 | 麻豆免费在线视频 | 日韩高清不卡在线 | 免费黄色激情视频 | 免费av网址在线观看 | 麻豆国产精品一区二区三区 | 国产一区二区三区高清播放 | 久99久在线| 亚洲国产精品va在线看黑人动漫 | 日韩在线观看你懂得 | 91精品专区 | 丁香资源影视免费观看 | 国产成人综合图片 | 久久精品一区二区三 | 免费网站色| 国产精品国产三级国产不产一地 | 国产精美视频 | a天堂中文在线 | 亚洲免费国产视频 | 夜色成人网 | 91精品久久久久久综合乱菊 | 国产精品久久免费看 | 色婷婷狠| 中文字幕资源站 | 91热在线 | 人人澡人人澡人人 | 99精品免费视频 | 99re亚洲国产精品 | 天天色图 | 国产成人高清 | 中文字幕在线观看免费 | 免费在线播放视频 | 天天操天天色天天 | 国产成人精品一区二区三区 | 18av在线视频 | 日日草天天草 | 亚洲最新视频在线 | 国产精品高潮呻吟久久久久 | 日韩av一区二区三区四区 | 国产精品久久久久一区二区三区共 | 少妇高潮冒白浆 | 深爱激情av | 精品99久久 | 亚洲欧美日韩不卡 | 日韩免费在线视频观看 | 又黄又爽又无遮挡的视频 | 激情伊人五月天 | 激情五月婷婷网 | 国产一级一片免费播放放 | 视频精品一区二区三区 | 久久看片网站 | 福利二区视频 | 人人看人人 | 国产91九色蝌蚪 | 免费精品久久久 | 亚洲网站在线看 | 久久亚洲二区 | 一区二区三区四区五区在线 | 国产九九热 | 日韩在线观看小视频 | 97视频在线观看播放 | 91在线公开视频 | 精品中文字幕在线播放 | 99热 精品在线 | 成人蜜桃视频 | 欧美日韩高清一区二区三区 | 国产精品999久久久 久产久精国产品 | 精品国产亚洲在线 | 视频在线观看日韩 | 天天干天天操天天操 | 亚洲国产精品999 | 黄网站色 | 五月综合在线观看 | 日韩xxxx视频 | 九九视频免费观看视频精品 | 久久亚洲在线 | 天天做日日做天天爽视频免费 | 成人av网站在线 | 亚洲天堂网在线视频 | 国产精品18久久久久久首页狼 | 三级av片 | 你操综合| 国产成人精品综合久久久 | 久久久久久高清 | 国产美女在线观看 | 国产色拍| 亚洲国产视频网站 | 久久综合久久综合这里只有精品 | 欧美性天天 | 久久久男人的天堂 | 69久久夜色精品国产69 | 黄色av电影网 | sesese图片 | 亚洲精品国产电影 | 免费99| 国产又粗又猛又黄又爽 | 在线免费观看国产黄色 | 亚洲视频 中文字幕 | 久草在线视频资源 | 91麻豆看国产在线紧急地址 | 久操操 | 免费在线色 | 久 久久影院 | 夜夜夜夜操 | 欧美性生活一级片 | 亚洲精品中文在线资源 | 极品嫩模被强到高潮呻吟91 | 麻豆国产网站 | 综合色婷婷 | 久久精品精品电影网 | 国产精品久久久99 | 很黄很污的视频网站 | 麻豆一精品传二传媒短视频 | 日韩高清免费电影 | 天干啦夜天干天干在线线 | 色综合激情久久 | 四虎成人精品永久免费av | 久久电影网站中文字幕 | 四虎成人精品永久免费av | 久久久久国产成人精品亚洲午夜 | 去干成人网 | 久久久久久久久久久免费 | 天天操天天干天天摸 | 天天做日日爱夜夜爽 | 国产精品第54页 | 色视频 在线 | 久久久精品福利视频 | 亚洲综合色网站 | 丁香色婷 | 日韩精品亚洲专区在线观看 | 久草在线视频在线观看 | 免费观看www视频 | 特黄特色特刺激视频免费播放 | 免费在线观看av片 | 日韩免费观看视频 | www.com久久 | 久久免费激情视频 | 五月天综合色 | av一区二区三区在线 | 国产毛片久久 | 免费高清在线观看成人 | 久久区二区 | 91中文字幕网 | 人人狠狠综合久久亚洲 | 国产69精品久久久久久久久久 | av高清在线 | av手机在线播放 | 97免费在线观看视频 | 91视频免费看片 | 免费av在线网站 | 国产成人精品综合久久久 | 成人免费观看视频大全 | 在线视频麻豆 | 99久久毛片 | 韩日精品视频 | 国产视频在线播放 | 人人澡人人爱 | 99精品小视频 | 六月丁香在线视频 | 97人人添人澡人人爽超碰动图 | 91中文字幕网 | 一本—道久久a久久精品蜜桃 | 人人看人人做人人澡 | 亚洲日本va在线观看 | 超碰国产97 | 免费在线观看一区 | 色a资源在线 | 色999在线 | 国偷自产视频一区二区久 | av片一区二区 | 欧美一级爽 | 我要看黄色一级片 | www.超碰 | 美女视频是黄的免费观看 | 黄色一级大片在线免费看产 | 国产99免费视频 | 久久99国产精品视频 | 插久久| 2018精品视频 | 五月婷婷一级片 | 中文字幕av免费 | av在线8| 免费观看av网站 | 国产视频资源 | 久要激情网 | 天天操天天草 | 成 人 黄 色 片 在线播放 | 国产成人专区 | 美女网站在线看 | 香蕉视频国产在线 | 成人黄色中文字幕 | 欧美动漫一区二区三区 | 在线中文字幕一区二区 | 97成人在线视频 | 天天曰天天 | 久久国色夜色精品国产 | av性网站| 国产黄色精品网站 | 日韩系列在线 | 久草在线视频国产 | av高清网站在线观看 | 99精品免费久久久久久日本 | 色之综合网 | 亚洲国产wwwccc36天堂 | 手机在线永久免费观看av片 | 中文永久字幕 | 在线观看久草 | 最新极品jizzhd欧美 | 香蕉久久久久 | 久久久免费少妇 | 精品伦理一区二区三区 | 中文永久字幕 | 手机av在线网站 | 五月情婷婷 | 久久亚洲婷婷 | 五月开心婷婷网 | 国产午夜视频在线观看 | 成人黄色免费在线观看 | 在线一级片 | 亚洲九九九 | 久久国内精品 | 日韩精品视频在线观看免费 | 97久久精品午夜一区二区 | 国产精品久久久久av免费 | 国产在线播放一区二区 | 国产在线免费 | 亚洲精品午夜aaa久久久 | 99精品视频在线播放观看 | 免费看毛片网站 | 精品国产亚洲日本 | 综合色在线 | 国产福利精品一区二区 | 久久99精品久久久久蜜臀 | 激情网五月| 99热.com| 91麻豆精品国产午夜天堂 | 国产一区在线视频观看 | 久久tv | 天天操网 | 99久久久久久国产精品 | 久久久国产99久久国产一 | www.色com| 欧美日韩亚洲第一 | 在线色资源 | 久久久久久久久久久久电影 | 亚洲成人免费在线观看 | 国产91对白在线 | 国产免费观看视频 | 丝袜美腿在线播放 | 国产精品久久久久久五月尺 | 亚洲视频免费 | 亚洲国产999 | 久久久久久久久久久综合 | 亚洲成a人片在线www | 91看片网址 | 久久久国产视频 | 日韩一级片网址 | 99久久精品国产一区二区三区 | 国产精品不卡av | 天天综合视频在线观看 | 综合久久精品 | 成人高清av在线 | 成人a在线 | 国产精品18久久久久久久 | 天天爱综合 | 国产成人精品一区二区三区在线 | 最近中文字幕国语免费av | av成人免费| 99亚洲国产 | 亚洲综合色av | www.天堂av| 激情开心色| 二区三区中文字幕 | av在线看网站| 亚洲一二三区精品 | 九九免费精品 | 欧美日韩大片在线观看 | 久久精品视频免费播放 | 中文字幕一区二 | 中文字幕传媒 | 日韩免费在线播放 | 亚洲三级在线免费观看 | 日韩在线免费高清视频 | 国产黄色免费观看 | 国产一区二区免费在线观看 | 日韩久久久久久久 | 在线视频18在线视频4k | 九九久久久久久久久激情 | 亚洲一区二区高潮无套美女 | 最近中文字幕在线播放 | 在线网站黄 | 91在线中文 | 国产日韩精品一区二区三区在线 | 在线视频第一页 | 亚洲激情p| 一级免费看 | 69久久99精品久久久久婷婷 | 久久久久福利视频 | 成人一区二区在线 | 四虎国产永久在线精品 | 精品欧美一区二区精品久久 | 日批视频 | 天天激情| 亚洲最新在线视频 | 中文字幕乱码在线播放 | 中文字幕资源网 国产 | 青草视频免费观看 | 99电影| 日韩专区视频 | 9999在线视频 | 午夜精品av| 欧美一级小视频 | 高潮久久久 | 日韩视频在线观看视频 | 日韩aa视频 | 国产精品视频全国免费观看 | 91丨九色丨高潮丰满 | 精品久久久久久国产偷窥 | 美女免费黄网站 | 狠狠综合| 9草在线 | 福利视频一区二区 | 国产亚洲情侣一区二区无 | 久久综合成人 | 成人sm另类专区 | 青春草视频| 日韩乱码中文字幕 | 天天操天天干天天爽 | 日韩成年视频 | 国产美女在线观看 | 成年人在线免费看 | 成人a免费看 | 亚洲闷骚少妇在线观看网站 | 中文视频在线播放 | 日韩啪啪小视频 | 久久er99热精品一区二区三区 | 中文字幕在线观看视频一区 | 99久高清在线观看视频99精品热在线观看视频 | 激情视频一区二区 | 亚洲精品久久久蜜桃 | 亚洲国产一区二区精品专区 | 亚洲欧美怡红院 | 成人国产精品免费 | 欧美视频在线观看免费网址 | 免费人成在线观看 | 久久经典国产视频 | 天天天干天天射天天天操 | 久久三级毛片 | 中文在线字幕观看电影 | 成年人在线免费视频观看 | 精品国产色 | 色婷婷伊人 | 中文字幕精品一区 | 久久久久久久久久久电影 | 免费国产一区二区 | 久久不卡国产精品一区二区 | av一级在线| 九色视频自拍 | 免费一级片视频 | 国产精品久久久久一区二区 | 中文字幕亚洲精品日韩 | 美州a亚洲一视本频v色道 | 国产伦精品一区二区三区… | 日韩视频免费观看高清完整版在线 | 久久久精品福利视频 | 久久久久久久久久亚洲精品 | 9久久精品 | 91精品亚洲影视在线观看 | 久久天天躁狠狠躁亚洲综合公司 | 亚洲国产精品激情在线观看 | 在线观看免费版高清版 | 色婷五月天| 中文av资源站 | 午夜黄色影院 | 亚洲国产黄色片 | 日韩国产欧美在线视频 | 免费色视频网站 | 久久九九免费视频 | 国产欧美综合视频 | 91精品国产欧美一区二区 | 高清一区二区三区av | www.狠狠操.com | 99久热在线精品视频观看 | 久久精品4 | 丝袜av网站 | 91喷水| 麻豆视频91 | 欧美性生活小视频 | www.com.黄 | 国产资源| 人人爽久久久噜噜噜电影 | 不卡电影一区二区三区 | 在线观看av小说 | 久草电影在线观看 | 亚洲人人射 | 97成人超碰 | 人操人 | 免费高清无人区完整版 | 国产精品久久片 | 成人性生交大片免费看中文网站 | 午夜视频在线观看一区二区三区 | 成人视屏免费看 | 69热国产视频 | 国产尤物一区二区三区 | 91亚洲精品久久久蜜桃 | www.黄色| 久久久国产影视 | 久久精品在线免费观看 | 91精品天码美女少妇 | 国产麻豆视频 | 久久影院一区 | www国产在线 | 干天天 | 91超碰在线播放 | 中文字幕一区二区三区久久蜜桃 | 麻豆精品在线视频 | 免费在线观看黄色网 | 久99久精品 | 人人爱在线视频 | 国产123区在线观看 国产精品麻豆91 | 精品国产乱子伦一区二区 | 国产黄免费在线观看 | 精品视频免费久久久看 | 2018精品视频| 久久精品91久久久久久再现 | 久久999久久 | 天天做天天爱天天爽综合网 | 午夜a区 | 欧美日韩免费一区 | 国产精品久久久久久久久久白浆 | 手机看片中文字幕 | 麻豆传媒电影在线观看 | av不卡在线看 | 欧美男同网站 | 日韩午夜高清 | 国产精品一区二区无线 | 日韩欧美黄色网址 | 在线影视 一区 二区 三区 | 成人啪啪18免费游戏链接 | 亚洲午夜精品久久久久久久久 | 日韩精品一区二区三区视频播放 | 99在线热播精品免费 | 激情伊人五月天久久综合 | 日本视频精品 | 在线观看一区二区视频 | 99热超碰| 国产一级黄大片 | 国产精品成人a免费观看 | 日韩有码在线播放 | 99热在线国产 | aaa黄色毛片 | 色综合欧洲 | 欧美色图30p | 中文字幕专区高清在线观看 | 欧美另类成人 | 免费看片亚洲 | 91人人射| 色综合久久久久久久久五月 | 日本久草电影 | jizzjizzjizz亚洲 | 亚洲乱码中文字幕综合 | 精品国产伦一区二区三区观看方式 | 中文字幕视频在线播放 | 亚洲一级理论片 | 西西4444www大胆视频 | 中文字幕资源网在线观看 | 久久国产精品久久w女人spa | 精品一区 在线 | 国产精品电影一区 | 在线观看日韩视频 | 精品久久久成人 | 中文字幕免费在线 | 中文字幕在线一二 | 欧美性高跟鞋xxxxhd | 成年人视频免费在线 | 亚洲精品视频在 | 亚洲三级av| 国产原创在线 | 伊人中文在线 | 国产精品区二区三区日本 | 九九久久精品视频 | 国产精品国内免费一区二区三区 | 日韩福利在线观看 | 99精品在这里 | 日日干夜夜操视频 | 久久久久亚洲天堂 | 久久av免费 | 国产一级做a | 三级视频片 | 国产精品嫩草69影院 | 久久精品视频在线播放 | 久久字幕网 | 国产精品久久久久久超碰 | 日韩在线三级 | 久久精品伊人 | 狠狠狠干狠狠 | 国产99久久久国产 | 国产伦精品一区二区三区照片91 | 99久久精品免费看国产麻豆 | 久久综合色一综合色88 | 成人午夜黄色影院 | 日韩欧三级 | 一级做a视频| av在线电影免费观看 | 91精品视频一区 | 国产精品福利在线 | 久草在线91| 成人一区二区三区中文字幕 | 免费看污网站 | 色综合天天天天做夜夜夜夜做 | av黄色成人 | 久久久久久久久久影院 | 国产成人福利在线 | 国产99久久久国产精品成人免费 | 日本爱爱免费视频 | 久久精品国产第一区二区三区 | 精品美女在线观看 | 久久深夜 | 又黄又爽又无遮挡免费的网站 | 久久精品国产免费看久久精品 | 欧美日韩性 | 国产精品成久久久久三级 | 欧美aa在线| 欧洲在线免费视频 | 亚洲综合在线一区二区三区 | 国产又粗又猛又黄又爽的视频 | 久久视频在线 | 国产成人福利在线 | 国产精品99蜜臀久久不卡二区 | 在线观看视频 | 蜜臀av麻豆| 欧美色图p | 国内精品久久久久影院优 | av在线播放快速免费阴 | 中文字幕免费高清在线 | 婷婷六月天在线 | 精品国产乱码一区二区三区在线 | 国产无遮挡又黄又爽在线观看 | 九九激情视频 | 日韩二区在线播放 | 国产不卡在线观看视频 | 久草9视频 | 中文字幕免费国产精品 | 久草免费在线 | 蜜臀久久99精品久久久无需会员 | 亚洲精品久久久久999中文字幕 | 日本中文字幕影院 | www一起操 | 亚洲精品在线电影 | 久草在线观看资源 | 亚洲涩涩网 | 东方av在线免费观看 | 亚洲成av人片在线观看无 | 成人av视屏 | 免费成视频 | 亚洲jizzjizz日本少妇 | 免费91麻豆精品国产自产在线观看 | 精品视频在线免费 | 在线播放亚洲激情 | 国产xxxx性hd极品 | 亚洲欧洲精品久久 | 91在线播放国产 | 免费高清男女打扑克视频 | 最新av在线网址 | 久久精品视频日本 | 国产成人a v电影 | 五月激情电影 | 国产成人亚洲精品自产在线 | 黄网站app在线观看免费视频 | 果冻av在线| 成人久久久久久久久久 | 日韩精品久久久久久中文字幕8 | 99色免费 | 欧美日韩精品国产 | 久久精品久久精品久久39 | 日韩欧美精品在线观看视频 | 精品国产一区二区三区四 | 国产视频久久久 | 久久久久 免费视频 | 亚洲一级二级三级 | 人人添人人澡 | 激情丁香久久 | 欧美另类重口 | 久久久久久久久久久久电影 | 97成人精品视频在线播放 | 日日操日日插 | 国产视频2| 国产98色在线 | 日韩 | 天天做日日爱夜夜爽 | 亚洲精品视频网站在线观看 | 国产一线二线三线性视频 | 91少妇精拍在线播放 | 久久久久久久久久网 | 亚洲视频高清 | 国产精品视频免费 | 蜜臀精品久久久久久蜜臀 | 亚洲小视频在线 | 欧美在线一二 | 亚洲一二三久久 | 992tv在线成人免费观看 | 27xxoo无遮挡动态视频 | 最新中文字幕在线观看视频 | 九九热精品国产 | 国产一二区免费视频 | 国产资源在线播放 | 欧美日韩不卡在线 | 国产 日韩 欧美 中文 在线播放 | 久久手机精品视频 | 欧美色婷婷| 啪啪免费试看 | 免费网址在线播放 | 国产精品a久久 | av一级片在线观看 | 在线观看激情av | 久久视频在线免费观看 | 最近2019好看的中文字幕免费 | 91精品视频免费看 | 天堂网一区二区 | 亚洲一片黄 | 久久与婷婷 | 九九免费在线观看 | 国产成人精品综合久久久久99 | 亚洲涩涩涩涩涩涩 | 国产精品成人免费一区久久羞羞 | 国色天香第二季 | 欧美a级片免费看 | 日韩欧美在线中文字幕 | 九色精品| 国产999精品久久久影片官网 | 激情欧美一区二区三区 | 天天操·夜夜操 | 国产精品6| 中文字幕在线看视频国产中文版 | 国产在线精 | 亚洲天堂自拍视频 | 色综合天天在线 | 久久久免费 | 色婷丁香| 欧美久久久久久久久久久久 | 91视频中文字幕 | 亚洲乱码在线观看 | 亚洲无人区小视频 | 96在线 | 成人av影视 | 国产在线不卡精品 | 欧美日韩国产一区二区三区 | 午夜视频色| 中文字幕在线看视频国产中文版 | 日韩免费中文字幕 | 91麻豆传媒| 2019精品手机国产品在线 | 成人黄色在线视频 | 黄色电影网站在线观看 | 久久婷婷色 | 西西444www | 精品久久网 | 成人av电影免费观看 | 天天插天天爽 | 97视频人人| 黄色精品国产 | 日韩精品一区二区三区电影 | 久久国产精品小视频 | 丁香婷婷激情国产高清秒播 | 91香蕉视频 | 国产一在线精品一区在线观看 | 国产成人精品一区二区三区在线 | 夜添久久精品亚洲国产精品 | 色婷婷久久久综合中文字幕 | 亚洲少妇天堂 | 国产字幕在线看 | 亚洲一区久久 | 国产精品地址 | 国产黄免费看 | 亚洲黄色在线免费观看 | 97视频久久久 | 国产精品成人国产乱 | 一本一本久久a久久精品综合妖精 | 亚洲精品乱码久久久久久 | 国产精久久久久久久 | 亚洲狠狠操 | 在线观看日韩国产 | 中文字幕国产一区 | 久久久www成人免费毛片麻豆 | 91免费国产在线观看 | 欧美二区三区91 | 亚洲区另类春色综合小说校园片 | 久草在线免 | 国产91影视| 亚洲电影图片小说 | 黄色一级在线视频 | 国产中文字幕91 | av免费在线观看1 | 欧美日韩不卡一区 |