System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機,特別涉及一種單元測試文件的生成方法及裝置。
技術介紹
1、在日常的java程序開發中,單元測試是確保代碼質量和功能正確性的重要手段,使用單元測試文件實現對應的單元測試。單元測試的目的在于發現各模塊內部可能存在的各種錯誤,這主要是基于白盒測試的原理,通過測試來發現在編碼過程中引入的錯誤。在進行單元測試時,被測單元可能會調用其他子單元或外部依賴,這些被調用的單元稱為樁單元。樁單元是用來替代被測單元中的子單元(被被測單元所調用)的,以隔離測試任務,確保測試的獨立性和準確性。
2、在傳統的單元測試實踐中,開發人員往往需要手動編寫樁函數來替代那些尚未實現或不穩定的組件,以及那些需要隔離的外部依賴。手寫樁函數的過程繁瑣且容易出錯,隨著軟件項目的復雜度和規模的不斷增加,手動編寫樁函數的效率變得越來越低,導致用于單元測試的單元測試文件的生成效率越來越低。
技術實現思路
1、有鑒于此,本申請實施例提供一種單元測試文件的生成方法及裝置,應用本申請提供的方案可以自動化的生成樁函數,自動的將樁函數插入被測文件中,無需人工對被測文件編寫樁函數,減少向被測文件中插入樁函數所需的時間,提高生成單元測試文件的效率。
2、為實現上述目的,本申請實施例提供如下技術方案:
3、一種單元測試文件的生成方法,包括:
4、獲取被測文件,并提取所述被測文件中的程序信息;
5、從所述程序信息中獲取打樁函數信息,所述打樁函數信息中包含需要打樁的各個函
6、應用預設的樁函數值策略以及預先定義的樁函數模板,生成與所述打樁函數信息對應的樁函數文件,所述樁函數文件中包含所述打樁函數信息中需要打樁的每個函數的樁函數;
7、將所述樁函數文件引入所述被測文件中,生成與所述被測文件對應的單元測試文件。
8、上述的方法,可選的,所述提取所述被測文件中的程序信息,包括:
9、利用預設的語法分析工具將所述被測文件構建為語法樹;
10、對所述語法樹進行靜態程序分析,提取所述語法樹中的每個函數的函數信息;
11、基于所述語法樹中的每個函數的函數信息,對所述語法樹中的所有函數進行調用關系分析,確定需要打樁的各個函數,并生成包含需要打樁的各個函數的打樁函數信息;
12、將所述打樁函數信息和所述語法樹中的每個函數的函數信息確定為程序信息。
13、上述的方法,可選的,應用預設的樁函數值策略以及預先定義的樁函數模板,生成與所述打樁函數信息對應的樁函數文件,包括:
14、對于所述打樁函數信息中的每個需要打樁的函數,將該需要打樁的函數確定為打樁函數;
15、獲取所述打樁函數的函數信息;
16、基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值;
17、使用所述樁函數值和預先定義的樁函數模板,構建所述打樁函數的樁函數;
18、基于所有打樁函數的樁函數,生成樁函數文件。
19、上述的方法,可選的,所述基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值,包括:
20、基于所述打樁函數的函數信息,確定所述打樁函數是否滿足所述樁函數值策略中的應用默認值策略;
21、當所述打樁函數滿足所述樁函數值策略中的應用默認值策略時,將預設的默認值作為所述打樁函數的樁函數值;
22、當所述打樁函數不滿足所述樁函數值策略中的應用默認值策略時,將引入的樁值確定為所述打樁函數的樁函數值。
23、上述的方法,可選的,所述將所述樁函數文件引入所述被測文件中,包括:
24、將每個需要打樁的函數在所述被測文件中的調用點位置確定為目標位置;
25、對于所述被測文件中的每個目標位置,在所述樁函數文件中確定所述目標位置的目標樁函數,并將所述目標位置的函數替換為所述目標樁函數。
26、一種單元測試文件的生成裝置,包括:
27、程序分析單元,用于獲取被測文件,并提取所述被測文件中的程序信息;
28、樁函數文件生成單元,用于從所述程序信息中獲取打樁函數信息,所述打樁函數信息中包含需要打樁的各個函數;應用預設的樁函數值策略以及預先定義的樁函數模板,生成與所述打樁函數信息對應的樁函數文件,所述樁函數文件中包含所述打樁函數信息中需要打樁的每個函數的樁函數;
29、樁函數引入替換單元,用于將所述樁函數文件引入所述被測文件中,生成與所述被測文件對應的單元測試文件。
30、上述的裝置,可選的,所述程序分析單元,包括:
31、靜態分析器、符號表存儲器以及函數調用關系分析器;
32、所述靜態分析器,用于利用預設的語法分析工具將所述被測文件構建為語法樹;對所述語法樹進行靜態程序分析,提取所述語法樹中的每個函數的函數信息;
33、所述函數調用分析器,用于基于所述語法樹中的每個函數的函數信息,對所述語法樹中的所有函數進行調用關系分析,確定需要打樁的各個函數,并生成包含需要打樁的各個函數的打樁函數信息;
34、所述符號表存儲器,用于將所述打樁函數信息和所述語法樹中的每個函數的函數信息確定為程序信息。
35、上述的裝置,可選的,所述樁函數文件生成單元,包括:
36、樁文件構造器和第一符號表讀取器;
37、所述第一符號表讀取器,用于從所述程序分析單元中讀取打樁函數信息,對于所述打樁函數信息中的每個需要打樁的函數,將該需要打樁的函數確定為打樁函數;獲取所述打樁函數的函數信息;
38、所述樁文件構造器,用于對于每個打樁函數,基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值;使用所述樁函數值和預先定義的樁函數模板,構建所述打樁函數的樁函數;基于所有打樁函數的樁函數,生成樁函數文件。
39、上述的裝置,可選的,所述樁文件構造器執行對于每個所述打樁函數,基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值的過程,包括:
40、基于所述打樁函數的函數信息,確定所述打樁函數是否滿足所述樁函數值策略中的應用默認值策略;
41、當所述打樁函數滿足所述樁函數值策略中的應用默認值策略時,將預設的默認值作為所述打樁函數的樁函數值;
42、當所述打樁函數不滿足所述樁函數值策略中的應用默認值策略時,將引入的樁值確定為所述打樁函數的樁函數值。
43、上述的裝置,可選的,所述樁函數引入替換單元,包括:
44、第二符號表讀取器和樁函數插裝器;
45、所述第二符號表讀取器,用于從所述程序分析單元中讀取每個需要打樁的函數的位置信息;
46、所述樁函數插裝器,用于基于每個需要打樁的函數的位置信息,確定每個需要打樁的函數在所述被測文件的調用點位置,并將每個需本文檔來自技高網...
【技術保護點】
1.一種單元測試文件的生成方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述提取所述被測文件中的程序信息,包括:
3.根據權利要求1所述的方法,其特征在于,應用預設的樁函數值策略以及預先定義的樁函數模板,生成與所述打樁函數信息對應的樁函數文件,包括:
4.根據權利要求3所述的方法,其特征在于,所述基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值,包括:
5.根據權利要求1所述的方法,其特在于,所述將所述樁函數文件引入所述被測文件中,包括:
6.一種單元測試文件的生成裝置,其特征在于,包括:
7.根據權利要求6所述的裝置,其特征在于,所述程序分析單元,包括:
8.根據權利要求6所述的裝置,其特征在于,所述樁函數文件生成單元,包括:
9.根據權利要求8所述的裝置,其特征在于,所述樁文件構造器執行對于每個所述打樁函數,基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值的過程,包括:
10.根據權利要求6所述的
...【技術特征摘要】
1.一種單元測試文件的生成方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述提取所述被測文件中的程序信息,包括:
3.根據權利要求1所述的方法,其特征在于,應用預設的樁函數值策略以及預先定義的樁函數模板,生成與所述打樁函數信息對應的樁函數文件,包括:
4.根據權利要求3所述的方法,其特征在于,所述基于預設的樁函數值策略和所述打樁函數的函數信息,確定所述打樁函數的樁函數值,包括:
5.根據權利要求1所述的方法,其特在于,所述將所述樁函數文件引入所述被...
【專利技術屬性】
技術研發人員:蘇開印,白欣逢,李紅章,趙奇,
申請(專利權)人:中國農業銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。