《软件测试》实验
实验二 单元测试
实验目的
(1) 用JUnit编写单元测试;
(2) 学习代码覆盖率和性能监测工具的使用;
实验内容
1、 在博客园http://www.cnblogs.com/开通自己的技术博客
关注http://www.cnblogs.com/mjutest
并写一段个人简介(不少于100字)
2、 学习单元测试和代码覆盖率工具的使用
(1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);
(2)编写单元测试进行测试;
(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
Demo类:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Demo {
public void countWord(String str) {
String[] wordsArray = str.split(" ");
Map<String, Integer> wordsMap = new HashMap<String, Integer>();
for (String word : wordsArray) {
if (wordsMap.containsKey(word)) {
wordsMap.put(word, wordsMap.get(word) + 1);
} else {
wordsMap.put(word, 1);
}
}
Set<String> setKey = wordsMap.keySet();
Iterator<String> itKey = setKey.iterator();
while (itKey.hasNext()) {
String word = itKey.next().toString();
int count = wordsMap.get(word);
System.out.println("单词 " + word + " 出现" + count + "次");
}
}
}
JUnit单元测试类:
import static org.junit.Assert.*;
import org.junit.Test;
public class DemoTest {
@Test
public void testCountWord() {
Demo demo = new Demo();
demo.countWord("Hello World Hello Java Hello Test");
}
}
测试:
EclEmma代码覆盖率:
3、 学习单元测试代码覆盖率工具的使用(结对项目)
(1)把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
(2)编写单元测试进行测试;
(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
Demo类:
public class Demo {
public void reverse(String str) {
String[] wordsArray = str.split(" ");
System.out.print("单词颠倒输出: ");
for (int i = wordsArray.length - 1; i >= 0; i--) {
System.out.print(wordsArray[i] + " ");
}
}
}
JUnit单元测试类:
import static org.junit.Assert.*;
import org.junit.Test;
public class DemoTest {
@Test
public void testReverse() {
Demo demo = new Demo();
demo.reverse("Hello World Hello Java Hello Test");
}
}
测试:
EclEmma代码覆盖率:
4、博客作业,将题3作为你的博客作业,发布的自己的博客中,具体请关注http://www.cnblogs.com/mjutest中发布的作业要求。