1、題目簡介 git
寫一個程序,計算出一組文本文檔的英文單詞的頻率。github
練習的能力:安全
迴歸測試,單元測試,性能分析,性能優化等基本源代碼控制技能性能優化
2、源碼的github連接性能
https://github.com/WreckBear/2ndHomeWork單元測試
3、所設計的模塊測試用例、測試結果截圖測試
本實現有三個方法,分別對三個方法作了測試:優化
對獲取文件中的字符串方法作的三項測試:spa
1 @Test
2 public void tsetNullFile() throws IOException{ 3 File file =null; 4 DoSomething dos = new DoSomething(); 5 String result = dos.getString(file); 6 assertNull(result); 7 } 8 9 @Test 10 public void testNoContentFile() throws IOException { 11 File file =new File("D:/Empty.txt"); 12 DoSomething dos = new DoSomething(); 13 String result = dos.getString(file); 14 assertEquals("",result); 15 } 16 17 @Test 18 public void testNormalFile() throws IOException { 19 File file =new File("D:/Normal.txt"); 20 DoSomething dos = new DoSomething(); 21 String result = dos.getString(file); 22 assertEquals("hello,my name is Matin,I am thirty-three years old.",result); 23 }
對提取單詞的方法作了以下測試:
1 @Test
2 public void testTakeWord() throws IOException { 3 File file =new File("D:/Normal.txt"); 4 DoSomething dos = new DoSomething(); 5 String str = dos.getString(file); 6 List<String> result = dos.takeWord(str); 7 for(String show:result){ 8 System.out.print(show); 9 } 10 }
該測試打印結果爲:hello my name is Matin I am thirty three years old 設計
對計算單詞頻率作了以下測試:
1 @Test
2 public void testFrequency() { 3 List<String> list = new ArrayList<String>(); 4 list.add("hello"); 5 list.add("hello"); 6 list.add("bye"); 7 list.add("bye"); 8 list.add("hello"); 9 list.add("queue"); 10 list.add("hello"); 11 12 DoSomething dos = new DoSomething(); 13 HashMap map = dos.getFrequency(list); 14 15 Iterator iter = map.entrySet().iterator(); 16 while (iter.hasNext()) { 17 Map.Entry entry = (Map.Entry) iter.next(); 18 String key = (String) entry.getKey(); 19 int val = (Integer) entry.getValue(); 20 System.out.println(key+":"+val); 21 } 22 }
該測試打印結果:
hello:4
queue:1
bye:2
測試結果截圖:
4、問題及解決方案、心得體會
問題:
從文章中獲取單詞的方法不完善,好比若文章中出現連續的非字符,可能獲取單詞就會被截止,該方法在繼續完善。
心得體會:
雖然此次做業難度不大,不復雜,體會不出明顯的測試所帶來的效果,但也能清楚的感覺到Junit給測試帶來的便捷性,感嘆Junit的簡單之中的神奇。
另外此次的測試做業也讓本身測試有了個不一樣的理解,不再是簡單的寫個mian方法測試一下,而是跟全面的去方法安全性和健壯性進行檢測,不可不謂收貨。