一種單元測試的方法和裝置的制作方法

            文檔序號:6427572閱讀:233來源:國知局
            專利名稱:一種單元測試的方法和裝置的制作方法
            技術領域
            本申請涉及軟件測試領域,特別涉及一種單元測試的方法和裝置。
            背景技術
            単元測試是在軟件開發過程中要進行的最低級別的測試活動,在単元測試過程中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。因此,単元測試不僅僅是作為無錯編碼的ー種輔助手段應用于一次性的開發過程,単元測試也必須是可重復的,無論是在軟件修改過程中,還是移植到新的運行環境之后。而在單元測試過程中,對于某些不容易構造或者不容易獲取的對象,可以采用創建ー個虛擬的對象來進行測試的方式,這個虛擬的對象就稱為Mock對象。Mock對象就是實際中的對象在單元測試期間的代替品OMock對象是Mock類的實例化,在現有技術中,單元測試中Mock類的代碼編寫,主 要依賴于人工,所有的Mock類的代碼編寫完畢,就組成了 Mock庫。但是這種人工編寫代碼的效率很低,進行單元測試時的效率也非常低下;尤其是在對代碼質量要求較高的情況下,就會因為低效的単元測試程序編寫而浪費了大量的人力物カ資源。不僅如此,還會使得単元測試的程序代碼的可維護性較差。總之,目前需要本領域技術人員迫切解決的ー個技術問題就是如何能夠創新的提出ー種自動進行単元測試的方法,以解決現有技術中單元測試的效率低下以及可維護性較差的問題。

            發明內容
            本申請所要解決的技術問題是提供一種單元測試的方法,用以解決現有技術中編寫単元測試程序的效率低下以及可維護性較差的問題。本申請還提供了一種單元測試的裝置,用以保證上述方法在實際中的實現及應用。為了解決上述問題,本申請公開了一種單元測試的方法,包括接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型;依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類;使用所述領域對象和/或Mock類生成所述被測方法的測試方法;按照所述測試方法對所述原始類進行単元測試。優選的,還包括針對所述被測方法的源代碼進行靜態分析,以生成Mock庫的步驟,具體為獲取待測試源代碼中各個需要被Mock的原始類;通過反射獲得所述各個原始類的類中被測方法的參數,所述類參數包括被測方法名稱、參數類型和返回值類型;依據所述類參數生成所述原始類對應的各個Mock類;將所述各個Mock類組成的集合作為Mock庫。優選的,還包括構 建領域對象模型庫的步驟,具體為獲取待測試源代碼中被引用的領域對象;按照所述被引用的領域對象之間的引用關系對其進行排序;通過反射獲取所述被引用的領域對象的屬性信息,所述屬性信息包括類型及其名稱,所述類型包括基本類型和復雜類型;將所述屬性信息和被引用的領域對象的完整路徑按照引用關系順序存儲至所述領域對象模型庫中,所述領域對象模型庫中的一行數據為ー個領域對象的信息。優選的,還包括加載所述領域對象模型庫的步驟,具體為從所述領域對象模型庫中獲取單條數據,所述單條數據包括領域對象的完整路徑及其初始值;依據所述領域對象的完整路徑通過反射調用無參構造方法,以創建所述領域對象的實例;依據所述類型及其初始值調用屬性的賦值方法對所述類型進行賦值;將所述領域對象的完整路徑和所述賦值后的領域對象的實例作為映射關系對保存至內存中。優選的,所述按照所述領域對象和/或Mock類生成所述被測方法的測試方法,包括獲取所述被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的參數和返回值類型;根據所述引用類的類型生成測試方法的方法頭;根據所述引用類的類型及其所調用的方法的返回值類型生成引用類列表;遍歷所述引用類列表,以生成模擬引用類對象行為的代碼;從所述領域對象模型庫中獲取所述引用類的方法參數值,以生成測試方法的方法體;將固定的方法尾、所述方法頭以及方法體組成所述測試方法。本申請公開了一種單元測試的裝置,包括接收模塊,用于接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型;查找模塊,用于依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類;生成模塊,用于使用所述領域對象和/或Mock類生成所述被測方法的測試方法;測試模塊,用于按照所述測試方法對所述原始類進行単元測試。優選的,還包括生成Mock庫模塊,具體包括第一獲取子模塊,用于獲取待測試源代碼中各個需要被Mock的原始類;第一反射子模塊,用于通過反射獲得所述各個原始類的類中被測方法的參數,所述類參數包括被測方法名稱、參數類型和返回值類型;
            第一生成子模塊,用于依據所述類參數生成所述原始類對應的各個Mock類;組合子模塊,用于將所述各個Mock類組成的集合作為Mock庫。優選的,還包括構建模塊,所述構建模塊具體包括第二獲取子模塊,用于獲取待測試源代碼中被引用的領域對象;排序子模塊,用于按照所述被引用的領域對象之間的引用關系對其進行排序;第二反射子模塊,用于通過反射獲取所述被引用的領域對象的屬性信息,所述屬性信息包括類型及其名稱,所述類型包括基本類型和復雜類型。存儲子模塊,用于將所述屬性信息和被引用的領域對象的完整路徑按照引用關系 順序存儲至所述領域對象模型庫中,所述領域對象模型庫中的一行數據為ー個領域對象的信息。優選的,還包括加載模塊,所述加載模塊具體包括第三獲取子模塊,用于從所述領域對象模型庫中獲取單條數據,所述單條數據包括領域對象的完整路徑及其初始值;創建子模塊,用于依據所述領域對象的完整路徑通過反射調用無參構造方法,以創建所述領域對象的實例;賦值子模塊,用于依據所述類型及其初始值調用屬性的賦值方法對所述類型進行賦值;保存子模塊,用于將所述領域對象的完整路徑和所述賦值后的領域對象的實例作為映射關系對保存至內存中。優選的,所述生成模塊包括第四獲取子模塊,用于獲取所述被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的參數和返回值類型;第二生成子模塊,用于根據所述引用類的類型生成測試方法的方法頭;第三生成子模塊,用于根據所述引用類的類型及其所調用的方法的返回值類型生成引用類列表;遍歷子模塊,用于遍歷所述引用類列表,以生成模擬引用類對象行為的代碼;第四生成子模塊,用于從所述領域對象模型庫中獲取所述引用類的方法參數值,以生成測試方法的方法體;組成子模塊,用于將固定的方法尾、所述方法頭以及方法體組成所述測試方法。與現有技術相比,本申請包括以下優點在本申請中,単元測試的代碼通過本實施例的方案自動生成,生成的代碼再運行時,通過直接從預先生成的領域對象模型庫獲取相關的領域對象,以及調用預先生成的Mock庫中獲取對應的Mock類完成単元測試,能夠不再需要人工編寫代碼,提高単元測試的效率。因此,単元測試的程序代碼的可維護性也較好。同時,在加載領域對象模型庫的時候,將領域對象模型庫放到內存中,可以從內存中直接獲取,省去了人工編寫的工作量。當然,實施本申請的任ー產品并不一定需要同時達到以上所述的所有優點。


            為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的ー些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I是本申請的ー種單元測試的方法實施例I的流程圖;圖2是在方法實施例I中步驟103的流程圖;圖3是本申請的ー種單元測試的方法實施例2的流程圖;圖4是方法實施例2中步驟301的流程圖;
            圖5是方法實施例2中步驟302的流程圖;圖6是方法實施例2中步驟304的流程圖;圖7是本申請的ー種單元測試的裝置實施例I的結構框圖;圖8是裝置實施例I中生成模塊703的結構框圖;圖9是本申請的ー種單元測試的裝置實施例2的結構框圖;圖10是裝置實施例2中生成Mock庫模塊901的結構框圖;圖11是裝置實施例2中構建模塊902的結構框圖;圖12是裝置實施例2中加載模塊903的結構框圖。
            具體實施例方式下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。本申請可用于眾多通用或專用的計算裝置環境或配置中。例如個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器裝置、包括以上任何裝置或設備的分布式計算環境等等。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。本申請的主要思想之一可以包括,通過直接從預先生成的領域對象模型庫獲取相關的領域對象,以及從預先生成的Mock庫中獲取對應的Mock類,從而可以在進行単元測試的時候,能夠不再需要人工編寫代碼,提高單元測試的效率,并且,因為不再需要人工編寫代碼,因此,単元測試的程序代碼的可維護性也較好。另外,単元測試的代碼通過本申請實施例的方案自動生成,生成的代碼再運行時,通過直接從預先生成的領域對象模型庫獲取相關的領域對象,以及調用預先生成的Mock庫中獲取對應的Mock類完成単元測試,能夠不再需要人工編寫代碼,提高單元測試的效率。參考圖1,示出了本申請ー種単元測試的方法實施例I的流程圖,可以包括以下步驟步驟101 :接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型。在本實施例中,所述期望字段即是待測試的類中的被測方法的返回值類型或其屬性的類型,単元測試的目的即是測試所述期望字段的值是否與測試值相同。可以由用戶在輸入界面來輸入期望字段和測試值,例如,用戶可以依次選擇測試領域中的ー個包,并選擇該包中的某ー個原始類,這個原始類包括了很多方法,因此可以針對需要測試的各個方法都輸入相應的期望字段和期望值。步驟102 :依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類。其中,所述Mock庫為預先生成的Mock類的集合,各個Mock類都包括若干個Mock方法,這些Mock方法在運行時都可以模擬原始方法的行為。所述領域對象模型庫中的領域對象模型是被測系統中引用到的領域對象,包括具體的和抽象的業務模型。例如數據對象、值對象、實體、枚挙、基本類型及其封裝類,等等。
            需要說明的是,在得到被測方法之后,在本步驟中就可以通過反射和靜態代碼分析得到被測方法所引用到的領域對象和引用類,再根據被測方法引用的領域對象去領域對象模型庫中查找對應的源代碼,井根據被測方法的引用類去調用Mock庫中的Mock類。步驟103 :使用所述領域對象和/或Mock類生成所述被測方法的測試方法。根據查找到的領域對象和/或Mock類生成所述被測方法的測試方法。需要說明的是,在實際應用中,因為各個被測方法所引用的領域對象或者引用類不同,因此,可以需要根據查找到的領域對象獲取屬于當前被測方法所引用的領域對象以及模擬當前被測方法的引用類的行為的Mock類,這樣就能根據查找到的領域對象以及Mock類組合生成被測方法。在實際應用中,參考圖2所示,所述步驟103具體可以包括步驟201 :獲取所述被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的參數和返回值類型。本步驟可以獲取到被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的返回值類型。例如,被測方法為A,該方法引用了原始類D,而D又引用了引用類E,在E類下調用了方法B,那么本步驟即是獲取E類的類型,以及方法B的返回值類型。這里的返回值類型可以理解為整型(int)或者字符串型(string)或自定義的復雜類型等。所述原始類即是需要被Mock的類,為了與Mock類進行區分,在本申請實施例中將需要被Mock的類稱為原始類。步驟202 :根據所述原始類的引用類的類型生成測試方法的方法頭。在測試方法中的方法頭中聲明所述弓丨用類的類型。步驟203 :根據所述引用類的類型及其所調用的方法的返回值類型生成引用類列表。根據引用類的類型及其調用的方法的返回值類型,生成ー個引用類列表,其中,參考表I所示,第一列表示引用類的名稱,第二列表示其所調用方法的返回值類型。表I引用類r該引用類所調用的方法的返回值類型
            CcrCreditCardInfoDAOccrCreditCardlnfoDO
            CcrCreditCardBankInfoDAOList<CcrCreditCardBankInfoDO>步驟204 :遍歷所述引用類列表,以生成模擬引用類對象行為的代碼。針對該引用類列表中的每ー個引用類,都對應生成一段模擬行為的代碼。首先,判斷本次是否需要該引用類對象調用的方法拋出異常,如果需要則可以設置參數“true”來表示測試方法需要拋出異常,如果不需要則可以設置參數“false”;然后判斷引用類是否有返回值,如果有,則從領域對象模型庫中取出Mock類的返回值;最后調用Mock庫中的相應Mock方法,返回被Mock的引用類實例并將其注入被測類的對象。步驟205 :從所述領域對象模型庫中獲取所述引用類的方法參數值,以生成測試 方法的方法體。再從領域對象模型庫中獲取所述引用類的方法參數值,井根據步驟204中的模擬結果,可以生成測試方法的方法體部分。步驟206 :將固定的方法尾、所述方法頭以及方法體組成測試方法。本步驟即是將固定格式的方法尾,以及前述的方法頭和方法體,組成測試方法。步驟104 :按照所述測試方法對所述選擇的原始類進行単元測試。生成測試方法之后,就可以根據測試方法對所選擇的原始類進行単元測試。采用本申請實施例,単元測試程序運行時可以直接從預先生成的領域對象模型庫以及Mock庫中獲取相關的領域對象以及Mock類,從而可以在進行單元測試的時候,能夠提高單元測試的效率,并且,因為不再需要人工編寫代碼,因此,単元測試的程序代碼的可維護性也較好。參考圖3,示出了本申請ー種単元測試的方法實施例2的流程圖,可以包括以下步驟步驟301 :針對所述被測方法的源代碼進行靜態分析,以生成Mock庫。本步驟即是對被測方法的源代碼進行靜態分析,最終生成Mock庫的步驟。靜態分析具體可以包括分析該被測方法是否需要拋出異常;分析該被測方法引用到的引用類的類型;分析該被測方法的參數名(并非類型);以及,分析該被測方法引用到的引用類對象調用的方法。再對上述信息利用反射做進ー步分析,可以得到該被測方法引用到的引用類所調用的方法的返回值類型等。這里的反射指的是可以在不對ー個類進行分析的前提下,可以直接獲得類名稱、類的方法返回值、方法名、成員變量名或者成員變量類型等參數在實際應用中,參考圖4所示,所述步驟301具體可以包括步驟401 :獲取待測試源代碼中各個需要被Mock的原始類。步驟402 :通過反射獲得所述各個原始類的類中被測方法的參數,所述類參數包括被測方法名稱、參數類型和返回值類型。步驟403 :依據所述類參數生成所述原始類對應的各個Mock類。
            步驟404 :將所述各個Mock類組成的集合作為Mock庫。關于生成Mock庫的詳細內容可以參考另ー篇專利“ー種単元測試中生成Mock庫的方法和裝置”。步驟302 :構建領域對象模型庫。在本步驟還需要構建領域對象模型庫,該領域對象模型庫用于保存被測方法中所引用到的領域對象,該領域對象以屬性信息為主。領域對象模型庫可以采用文件的方式進行存儲,每一行數據為ー個領域對象模型信息。在其中需要存儲兩部分內容該領域對象的全路徑和領域對象各屬性的名稱和初始值。在實際應用中,參考圖5所示,所述步驟302具體可以包括步驟501 :獲取待測試源代碼中被引用的領域對象。
            首先獲取到待測試源代碼中都引用了哪些領域對象。步驟502 :按照所述被引用的領域對象之間的引用關系對其進行排序。然后再找出這些領域對象之間是什么樣的引用關系,也稱為依賴關系,并按照引用關系對領域對象進行排序,將被引用的對象排在前面,將引用的對象排在后面。例如,領域對象A引用B,B又引用C,因此如果初始化A,必須先初始化B,而如果需要初始化B,必須先初始化C,因此可以通過對象之間的引用關系將其順序排好C、B和A。這樣在后續進行初始化的時候就可以先初始化C。假設C的屬性都是簡單類型,通過默認初值進行賦值即可,再放到領域對象模型庫里。接著在需要初始化B時要用到C,就從領域對象模型庫里將C取出來,賦值后再把B放到領域對象模型庫里,最后初始化A時再把B從領域對象模型庫里取出來。步驟503 :通過反射獲取所述被引用的領域對象的屬性信息,所述屬性信息包括類型及其名稱,所述類型包括基本類型和復雜類型。通過反射獲取所述被引用的領域對象的屬性信息,即是領域對象的類型及其名稱,類型可以分為基本類型和復雜類型。步驟504 :將所述屬性信息和被引用的領域對象的完整路徑按照引用關系順序存儲至所述領域對象模型庫中,所述領域對象模型庫中的一行數據為ー個領域對象的信息。將引用到的領域對象的全名和屬性信息按照引用順序存儲在領域對象模型庫中,在存儲的時候將一個領域對象的信息存儲為一行數據,這樣就生成了領域對象模型庫。步驟303 :接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型。接著在人機交互界面可以接收用戶的期望字段和測試值,并在用戶觸發了單元測試程序之后,開始進行単元測試。步驟304 :加載所述領域對象模型庫的步驟。在進行單元測試的時候,因為領域對象模型庫是以文件的形式存在硬盤上,因此生成的単元測試程序要想運行,必須先加載到內存中。在實際應用中,參考圖6所示,所述步驟304具體可以包括步驟601 :從所述領域對象模型庫中獲取單條數據,所述單條數據包括領域對象的完整路徑、類型及其初始值。從領域對象模型庫中依次取出單條數據,就是讀出其中的一行數據,里邊包含領域模型的完整路徑,及其類型和類型的初始值。步驟602 :依據所述領域對象的完整路徑通過反射調用無參構造方法,以創建所述領域對象的實例。有了領域對象的全名,就可以通過反射的方式調用其無參構造方法,然后再通過反射調用,獲取各個屬性的賦值方法進行賦值。步驟603 :依據所述類型及其名稱調用屬性的賦值方法對所述類型進行賦值。利用步驟602中獲取的初始值對類型進行初始化。另外,不管是初始化簡單類型還是復雜類型,都要調用屬性的賦值方法進行賦值。步驟604 :將所述領域對象的完整路徑和所述賦值后的領域對象的實例作為映射關系對保存至內存中。 由于映射關系(Map)可以以key-value對的形式存放對象,方便查找,因此,key存領域對象的完整路徑,value就是初始化好的對象,即是賦值后的領域對象的實例。步驟305 :依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類。加載了所述領域對象模型庫之后,再從內存中的領域對象模型庫直接查找領域對象,以及從預先生成的Mock庫中查找Mock類,這里的Mock類是被測方法所引用的類的模擬行為。步驟306 :按照所述領域對象和/或Mock類生成所述被測方法的測試方法。步驟307 :按照所述測試方法對所述選擇的原始類進行単元測試。本實施例中與實施例I相同的步驟就不再贅述,參考實施例I中的詳細記載即可。在本實施例中,因為預先將領域對象模型庫加載到內存中,這樣在查找領域對象的時候,就可以直接從內存中進行查找,從而能夠提高單元測試的效率,并且節省大量的人力物カ資源。對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限制,因為依據本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本申請所必須的。與上述本申請ー種單元測試的方法實施例I所提供的方法相對應,參見圖7,本申請還提供了一種單元測試的裝置實施例1,在本實施例中,該裝置可以包括接收模塊701,用于接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型。查找模塊702,用于依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類。生成模塊703,用于使用所述領域對象和/或Mock類生成所述被測方法的測試方法。其中,在實際應用中,參考圖8所示,所述生成模塊703具體可以包括第四獲取子模塊801,用于獲取所述被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的參數和返回值類型;第二生成子模塊802,用于根據所述原始類的引用類的類型生成測試方法的方法頭;第三生成子模塊803,用于根據所述引用類的類型及其所調用的方法的返回值類型生成引用類列表;遍歷子模塊804,用于遍歷所述引用類列表,以生成模擬引用類對象行為的代碼;第四生成子模塊805,用于從所述領域對象模型庫中獲取所述引用類的方法參數值,以生成測試方法的方法體; 組成子模塊806,用于將固定的方法尾、所述方法頭以及方法體組成所述測試方法。測試模塊704,用于按照所述測試方法對所述選擇的原始類進行単元測試。采用本申請實施例,可以直接從預先生成的領域對象模型庫以及Mock庫中獲取相關的領域對象以及Mock類,從而可以在進行單元測試的時候,能夠提高單元測試的效率,并且,因為不再需要人工編寫代碼,因此,単元測試的程序代碼的可維護性也較好。與上述本申請ー種單元測試的方法實施例2所提供的方法相對應,參見圖9,本申請還提供了一種單元測試的裝置實施例2,在本實施例中,該裝置可以包括生成Mock庫模塊901,用于生成Mock庫。參考圖10所示,在實際應用中,所述生成Mock庫模塊901具體可以包括第一獲取子模塊1001,用于獲取待測試源代碼中各個需要被Mock的原始類。第一反射子模塊1002,用于通過反射獲得所述各個原始類的類中被測方法的參數,所述類參數包括被測方法名稱、參數類型和返回值類型。第一生成子模塊1003,用于依據所述類參數生成所述原始類對應的各個Mock類。組合子模塊1004,用于將所述各個Mock類組成的集合作為Mock庫。構建模塊902,用于構建領域對象模型庫。參考圖11所示,在實際應用中,所述構建模塊902具體可以包括第二獲取子模塊1101,用于獲取待測試源代碼中被引用的領域對象;排序子模塊1102,用于按照所述被引用的領域對象之間的引用關系對其進行排序;第二反射子模塊1103,用于通過反射獲取所述被引用的領域對象的屬性信息,所述屬性信息包括類型及其名稱,所述類型包括基本類型和復雜類型。存儲子模塊1104,用于將所述屬性信息和被引用的領域對象的完整路徑按照引用關系順序存儲至所述領域對象模型庫中,所述領域對象模型庫中的一行數據為ー個領域對象的信息。接收模塊701,用于接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型。加載模塊903,用于加載所述領域對象模型庫。參考圖12所示,在實際應用中,所述加載模塊903具體可以包括第三獲取子模塊1201,用于從所述領域對象模型庫中獲取單條數據,所述單條數據包括領域對象的完整路徑、類型及其初始值;創建子模塊1202,用于依據所述領域對象的完整路徑通過反射調用無參構造方法,以創建所述領域對象的實例;
            賦值子模塊1203,用于依據所述類型及其初始值調用屬性的賦值方法對所述類型進行賦值;保存子模塊1204,用于將所述領域對象的完整路徑和所述賦值后的領域對象的實例作為映射關系對保存至內存中。查找模塊702,用于依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類。生成模塊703,用于按照所述領域對象和/或Mock類生成所述被測方法的測試方法。測試模塊704,用于按照所述測試方法對所述原始類進行単元測試。在本實施例中,因為預先將領域對象模型庫加載到內存中,這樣在查找領域對象 的時候,就可以直接從內存中進行查找,從而能夠提高單元測試的效率,并且節省大量的人力物カ資源。本實施例所述的裝置可以集成到第三方交易平臺的服務器上,也可以單獨作為ー個實體與第三方交易平臺的服務器相連,另外,需要說明的是,當本申請所述的方法采用軟件實現時,可以作為第三方交易平臺的服務器新增的ー個功能,也可以單獨編寫相應的程序,本申請不限定所述方法或裝置的實現方式。需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另ー個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。以上對本申請所提供的一種單元測試的方法和裝置進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在具體實施方式
            及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
            權利要求
            1.一種單元測試的方法,其特征在于,該方法包括 接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型; 依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類; 使用所述領域對象和/或Mock類生成所述被測方法的測試方法; 按照所述測試方法對所述原始類進行単元測試。
            2.根據權利要求I所述的方法,其特征在于,還包括針對所述被測方法的源代碼進行靜態分析,以生成Mock庫的步驟,具體為 獲取待測試源代碼中各個需要被Mock的原始類; 通過反射獲得所述各個原始類的類中被測方法的參數,所述類參數包括被測方法名稱、參數類型和返回值類型; 依據所述類參數生成所述原始類對應的各個Mock類; 將所述各個Mock類組成的集合作為Mock庫。
            3.根據權利要求I所述的方法,其特征在于,還包括構建領域對象模型庫的步驟,具體為 獲取待測試源代碼中被引用的領域對象; 按照所述被引用的領域對象之間的引用關系對其進行排序; 通過反射獲取所述被引用的領域對象的屬性信息,所述屬性信息包括類型及其名稱,所述類型包括基本類型和復雜類型; 將所述屬性信息和被引用的領域對象的完整路徑按照引用關系順序存儲至所述領域對象模型庫中,所述領域對象模型庫中的一行數據為ー個領域對象的信息。
            4.根據權利要求3所述的方法,其特征在干,還包括加載所述領域對象模型庫的步驟,具體為 從所述領域對象模型庫中獲取單條數據,所述單條數據包括領域對象的完整路徑及其初始值; 依據所述領域對象的完整路徑通過反射調用無參構造方法,以創建所述領域對象的實例; 依據所述類型及其初始值調用屬性的賦值方法對所述類型進行賦值; 將所述領域對象的完整路徑和所述賦值后的領域對象的實例作為映射關系對保存至內存中。
            5.根據權利要求I所述的方法,其特征在于,所述按照所述領域對象和/或Mock類生成所述被測方法的測試方法,包括 獲取所述被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的參數和返回值類型; 根據所述引用類的類型生成測試方法的方法頭; 根據所述引用類的類型及其所調用的方法的返回值類型生成引用類列表; 遍歷所述引用類列表,以生成模擬引用類對象行為的代碼; 從所述領域對象模型庫中獲取所述引用類的方法參數值,以生成測試方法的方法體;將固定的方法尾、所述方法頭以及方法體組成所述測試方法。
            6.一種單元測試的裝置,其特征在于,該裝置包括 接收模塊,用于接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型; 查找模塊,用于依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類; 生成模塊,用于使用所述領域對象和/或Mock類生成所述被測方法的測試方法; 測試模塊,用于按照所述測試方法對所述原始類進行単元測試。
            7.根據權利要求6所述的裝置,其特征在于,還包括生成Mock庫模塊,具體包括 第一獲取子模塊,用于獲取待測試源代碼中各個需要被Mock的原始類; 第一反射子模塊,用于通過反射獲得所述各個原始類的類中被測方法的參數,所述類參數包括被測方法名稱、參數類型和返回值類型; 第一生成子模塊,用于依據所述類參數生成所述原始類對應的各個Mock類; 組合子模塊,用于將所述各個Mock類組成的集合作為Mock庫。
            8.根據權利要求7所述的裝置,其特征在于,還包括構建模塊,所述構建模塊具體包括 第二獲取子模塊,用于獲取待測試源代碼中被引用的領域對象; 排序子模塊,用于按照所述被引用的領域對象之間的引用關系對其進行排序; 第二反射子模塊,用于通過反射獲取所述被引用的領域對象的屬性信息,所述屬性信息包括類型及其名稱,所述類型包括基本類型和復雜類型; 存儲子模塊,用于將所述屬性信息和被引用的領域對象的完整路徑按照引用關系順序存儲至所述領域對象模型庫中,所述領域對象模型庫中的一行數據為ー個領域對象的信息。
            9.根據權利要求8所述的裝置,其特征在于,還包括加載模塊,所述加載模塊具體包括 第三獲取子模塊,用于從所述領域對象模型庫中獲取單條數據,所述單條數據包括領域對象的完整路徑及其初始值; 創建子模塊,用于依據所述領域對象的完整路徑通過反射調用無參構造方法,以創建所述領域對象的實例; 賦值子模塊,用于依據所述類型及其初始值調用屬性的賦值方法對所述類型進行賦值; 保存子模塊,用于將所述領域對象的完整路徑和所述賦值后的領域對象的實例作為映射關系對保存至內存中。
            10.根據權利要求6所述的裝置,其特征在于,所述生成模塊包括 第四獲取子模塊,用于獲取所述被測方法所引用的原始類的引用類的類型,以及該引用類所調用的方法的參數和返回值類型; 第二生成子模塊,用于根據所述引用類的類型生成測試方法的方法頭; 第三生成子模塊,用于根據所述引用類的類型及其所調用的方法的返回值類型生成引用類列表;遍歷子模塊,用于遍歷所述引用類列表,以生成模擬引用類對象行為的代碼; 第四生成子模塊,用于從所述領域對象模型庫中獲取所述引用類的方法參數值,以生成測試方法的方法體; 組成子模塊,用于將固定的方法尾、所述方法頭以及方法體組成所述測試方法。
            全文摘要
            本發明提供了一種單元測試的方法及裝置,所述方法包括接收輸入的期望字段和測試值;所述期望字段為用戶所選擇的原始類中的被測方法的返回值類型或其屬性的類型;依據所述被測方法從所述預先構建的領域對象模型庫查找領域對象,和/或從預先生成的Mock庫中查找Mock類;使用所述領域對象和/或Mock類生成所述被測方法的測試方法;按照所述測試方法對所述原始類進行單元測試。本發明實施例可以解決現有技術中單元測試的效率低下以及可維護性較差的問題。
            文檔編號G06F11/36GK102855177SQ20111018107
            公開日2013年1月2日 申請日期2011年6月30日 優先權日2011年6月30日
            發明者馮照臨, 劉中勝 申請人:阿里巴巴集團控股有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品