一、題目簡介
寫一個程式,計算出一組文字文件的英文單詞的頻率。
練習的能力:
迴歸測試,單元測試,效能分析,效能優化等基本原始碼控制技能
二、原始碼的github連結
https://github.com/WreckBear/2ndHomeWork
三、所設計的模組測試用例、測試結果截圖
本實現有三個方法,分別對三個方法做了測試:
對獲取檔案中的字串方法做的三項測試:
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
測試結果截圖:
四、問題及解決方案、心得體會
問題:
從文章中獲取單詞的方法不完善,比如若文章中出現連續的非字元,可能獲取單詞就會被截止,該方法在繼續完善。
心得體會:
雖然這次作業難度不大,不復雜,體會不出明顯的測試所帶來的效果,但也能清楚的感受到Junit給測試帶來的便捷性,感嘆Junit的簡單之中的神奇。
另外這次的測試作業也讓自己測試有了個不同的理解,再也不是簡單的寫個mian方法測試一下,而是跟全面的去方法安全性和健壯性進行檢測,不可不謂收貨。