本公開至少涉及網(wǎng)絡測試,尤其涉及一種子方法調(diào)用鏈串聯(lián)mock方法、子方法調(diào)用鏈串聯(lián)mock裝置以及計算機可讀存儲介質(zhì)。
背景技術:
1、mock指的是模擬,是在測試過程中,對于某些不容易構造或者不容易獲取的對象,用一個虛擬的對象來創(chuàng)建以便測試的測試方法。已有的使用mock的測試方法,通常只能對具體的一個測試起作用,需要對每個測試設計對應的測試方法,復雜且低效。
技術實現(xiàn)思路
1、本公開所要解決的技術問題是針對上述不足,提供一種子方法調(diào)用鏈串聯(lián)mock方法、子方法調(diào)用鏈串聯(lián)mock裝置以及計算機可讀存儲介質(zhì),以解決如何對包含mock的測試,簡化測試過程、提高測試效率的問題。
2、第一方面,本公開提供一種子方法調(diào)用鏈串聯(lián)mock方法,所述方法包括:
3、對被測方法進行監(jiān)聽,被測方法配置了若干個mock條件和對應每個mock條件的若干個子方法各自的mock值;
4、響應于監(jiān)聽到被測方法的若干個測試,為每個測試創(chuàng)建一個線程,并獲取每個測試的測試條件;
5、響應于被測方法的某個測試的測試條件與某個mock條件一致,獲取對應mock條件的若干個子方法各自的mock值加入對應線程;
6、根據(jù)被測方法的子方法調(diào)用鏈,在一個線程內(nèi)串聯(lián)各子方法對應的mock值或?qū)嶋H執(zhí)行值,以獲取被測方法的測試結(jié)果;
7、其中,mock是指模擬。
8、進一步地,對被測方法進行監(jiān)聽,具體包括:
9、啟動mock控制工具;
10、獲取在mock控制工具中配置的、且當前狀態(tài)為開啟的被測方法及其所屬應用;
11、對當前狀態(tài)為開啟的被測方法的所屬應用掛載監(jiān)聽,并創(chuàng)建所屬應用的掛載標識。
12、進一步地,所述方法還包括:
13、響應于關閉mock控制工具或在mock控制工具中配置的所屬應用所對應的全部被測方法的當前狀態(tài)均為關閉,對被測方法的所屬應用結(jié)束監(jiān)聽,并刪除掛載標識。
14、進一步地,被測方法配置了若干個mock條件和對應每個mock條件的若干個子方法各自的mock值,具體包括:
15、通過mock控制工具的第一配置界面配置被測方法的所屬應用、所在類和被測方法;
16、通過mock控制工具的第二配置界面配置被測方法的當前狀態(tài)為開啟或關閉;
17、通過mock控制工具的第三配置界面配置被測方法的若干個mock條件,以及對應每個mock條件的若干個子方法和若干個子方法各自的當前狀態(tài)為開啟或關閉;
18、通過mock控制工具的第四配置界面配置若干個子方法各自的所在類、名稱和mock值。
19、進一步地,所述方法還包括:
20、將mock控制工具中配置的信息和掛載標識保存在遠程字典服務redis中,redis中的數(shù)據(jù)可以被每個線程讀取。
21、進一步地,響應于監(jiān)聽到被測方法的若干個測試,為每個測試創(chuàng)建一個線程,并獲取每個測試的測試條件,具體包括:
22、響應于監(jiān)聽到對被測方法進行測試的某測試指令,為某測試指令創(chuàng)建一個線程和一個本地線程全局靜態(tài)變量,獲取某測試指令中的測試條件。
23、進一步地,響應于被測方法的某個測試的測試條件與某個mock條件一致,獲取對應mock條件的若干個子方法各自的mock值加入對應線程,具體包括:
24、響應于某測試指令中的測試條件與某個mock條件一致,獲取對應mock條件的、當前狀態(tài)為開啟的若干個子方法各自的所在類、名稱和mock值,并保存至本地線程全局靜態(tài)變量中。
25、進一步地,根據(jù)被測方法的子方法調(diào)用鏈,在一個線程內(nèi)串聯(lián)各子方法對應的mock值或?qū)嶋H執(zhí)行值,以獲取被測方法的測試結(jié)果,具體包括:
26、獲取被測方法中所有子方法的調(diào)用順序,按調(diào)用順序執(zhí)行所有子方法;
27、響應于本地線程全局靜態(tài)變量中包括當前調(diào)用順序的子方法的所在類和名稱,獲取對應的mock值作為當前調(diào)用順序的子方法的返回值;
28、響應于本地線程全局靜態(tài)變量中不包括當前調(diào)用順序的子方法的所在類和名稱,調(diào)用并執(zhí)行當前調(diào)用順序的子方法返回一個實際執(zhí)行值;
29、直至按照調(diào)用順序執(zhí)行完所有子方法,獲得被測方法的測試結(jié)果。
30、第二方面,本公開提供一種子方法調(diào)用鏈串聯(lián)mock裝置,所述裝置包括:
31、監(jiān)聽模塊,用于對被測方法進行監(jiān)聽,被測方法配置了若干個mock條件和對應每個mock條件的若干個子方法各自的mock值;
32、線程模塊,與監(jiān)聽模塊連接,用于響應于監(jiān)聽到被測方法的若干個測試,為每個測試創(chuàng)建一個線程,并獲取每個測試的測試條件;
33、mock模塊,與線程模塊連接,用于響應于被測方法的某個測試的測試條件與某個mock條件一致,獲取對應mock條件的若干個子方法各自的mock值加入對應線程;
34、測試模塊,與mock模塊連接,用于根據(jù)被測方法的子方法調(diào)用鏈,在一個線程內(nèi)串聯(lián)各子方法對應的mock值或?qū)嶋H執(zhí)行值,以獲取被測方法的測試結(jié)果;
35、其中,mock是指模擬。
36、第三方面,本公開提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有計算機程序,當所述計算機程序被處理器運行時,實現(xiàn)如上所述的子方法調(diào)用鏈串聯(lián)mock方法。
37、本公開提供一種子方法調(diào)用鏈串聯(lián)mock方法、子方法調(diào)用鏈串聯(lián)mock裝置以及計算機可讀存儲介質(zhì),通過監(jiān)聽,對調(diào)用多個子方法的被測方法,實現(xiàn)多條件多線程測試,可以簡化測試過程,同時提高測試效率。
1.一種子方法調(diào)用鏈串聯(lián)mock方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,對被測方法進行監(jiān)聽,具體包括:
3.根據(jù)權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權利要求2所述的方法,其特征在于,被測方法配置了若干個mock條件和對應每個mock條件的若干個子方法各自的mock值,具體包括:
5.根據(jù)權利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權利要求1-5任一項所述的方法,其特征在于,響應于監(jiān)聽到被測方法的若干個測試,為每個測試創(chuàng)建一個線程,并獲取每個測試的測試條件,具體包括:
7.根據(jù)權利要求6所述的方法,其特征在于,響應于被測方法的某個測試的測試條件與某個mock條件一致,獲取對應mock條件的若干個子方法各自的mock值加入對應線程,具體包括:
8.根據(jù)權利要求7所述的方法,其特征在于,根據(jù)被測方法的子方法調(diào)用鏈,在一個線程內(nèi)串聯(lián)各子方法對應的mock值或?qū)嶋H執(zhí)行值,以獲取被測方法的測試結(jié)果,具體包括:
9.一種子方法調(diào)用鏈串聯(lián)mock裝置,其特征在于,所述裝置包括:
10.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)中存儲有計算機程序,當所述計算機程序被處理器運行時,實現(xiàn)如權利要求1-8任一項所述的子方法調(diào)用鏈串聯(lián)mock方法。