1.(1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);
(2)编写单元测试进行测试;
(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
代码如下:
package cn.deng;
/*
* 计算每个单词出现的频率
* dengchuzneng
* 2016-4-1
*/
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MyFirst {
private Map<String, Integer> wordsMap;
public MyFirst(String strWords){
wordsMap=this.getArray(strWords);
}
public Map<String,Integer> getArray(String strWords){
String[] wordsArray = strWords.split("\\s");
//正则表达式‘\‘将下一个字符标记符、或一个向后引用、或一个八进制转义符‘\s‘匹配任何不可见字符,包括空格、制表符、换页符等等
Map<String, Integer> wordsMap=new HashMap<String, Integer>();
int arrLength=wordsArray.length;
int currentNum=0;
for(int i=0;i<arrLength;i++){
if("".equals(wordsArray[i].trim())){
continue;
}
if(!wordsMap.containsKey(wordsArray[i])){
//首次出现,放入键值对
wordsMap.put(wordsArray[i],1);
}else {
//键值对中已存在的,键值增加1,删除,重新添加此键值对
currentNum=wordsMap.get(wordsArray[i])+1;
wordsMap.remove(wordsArray[i]);
wordsMap.put(wordsArray[i],currentNum);
}
}
return wordsMap;
}
public void outputResult(){
Iterator iterator=wordsMap.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry entry=(Map.Entry)iterator.next();
System.out.println(entry.getKey()+"出现了"+entry.getValue());
}
}
}
测试类
package cn.deng;
import org.junit.Test;
public class MyfirstTest {
@Test
public void test() {
String str="Hello Hello World World World Hello";
MyFirst wordFreq=new MyFirst(str);
wordFreq.outputResult();
}
}
第一个测试用例
第二个测试用例
第三个测试用例
2.
(1)把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
(2)编写单元测试进行测试;
(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%
package cn.deng;
public class MySecond {
/**
* 单词次序颠倒
* dengchunzeng
* 2016-4-1
*/
public String Bee(String str) {
String[] wordsArray = str.split("\\s");
StringBuffer result = new StringBuffer();
for(int i = wordsArray.length -1;i >=0; i--){
if("".equals(wordsArray[i].trim())){
continue;
}
result.append(wordsArray[i] + " ");
}
return result.toString();
}
}
package cn.deng;
import static org.junit.Assert.*;
import org.junit.Test;
public class MySecondTest {
@Test
public void test() {
String str="How are you";
MySecond word=new MySecond();
System.out.println(word.Bee(str));
}
第一个测试用例
}
第二个测试用例
总结:
1、在进行单元测试时我们要有合适的测试用例,既要有好的测试用例,也要有不好的测试用例。我们往往在测试的时候忽略了不好的测试用例,这样子测试就不全面。
2、在刚开始接触软件测试时代码要怎样的书写规范,测试用例要怎样的书写都还处在探索期,还需要花更多的时间在这上面。