实验二 单元测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验二 单元测试相关的知识,希望对你有一定的参考价值。
1.(1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);
(2)编写单元测试进行测试;
(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
代码如下:
package cn.rocky;
import java.util.Scanner;
import java.util.Map;
import java.util.LinkedHashMap;
public class WordRate{
/**
* @param args
*/
void run() {
System.out.println("请输入一个字符串:");
Scanner sc = new Scanner(System.in);
String Str = sc.nextLine();
String[] word = Str.split(" ");
Map<String,Integer> map = new LinkedHashMap<String,Integer>();
for(String s : word){
if(map.containsKey(s)){
Integer val = map.get(s);
val += 1;
map.put(s, val);
}else{
map.put(s, 1);
}
}
System.out.println(map);
}
}
package cn.rocky;
public class Run{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WordRate word = new WordRate();
word.run();
}
}
结果:
单元测试:
package cn.rocky;
import org.junit.Test;
public class WordRateTest {
@Test
public void testMain() {
String Str = "Hello World My First Unit Test";
}
}
覆盖率:
总结:
(1).采用HashMap遍历对输入的语句是以无序输出的,即单词的顺序错乱,因此采用LinkedHashMap顺序遍历,能够对输入的各个子字符串以顺序的形式输出。
(2).一开始只写了一个类WordRate ,用ElcEmma查看代码覆盖率时发现只达到95%左右,原因在于类名没有被执行到。于是建立了一个实现类Run来对WordRate进行实现输出,使代码覆盖率达到了100%。好处:实现类运用了面向对象的思想,当WordRate类有n个构造方法时,建立实现类的main方法能够实现多个方法,想调用哪个就能灵活的调用。
(3)使用foreach循环,对比传统的方法,代码显得更加简洁。
2.
(1)把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
(2)编写单元测试进行测试;
(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%
代码如下:
package cn.rocky2;
import java.util.Scanner;
public class WordReverse {
void run(){
System.out.println("请输入一个字符串:");
Scanner sc = new Scanner(System.in);
String Str = sc.nextLine();
String[] word = Str.split(" ");
for (int i = word.length - 1; i >= 0; i--){
System.out.println(word[i]);
}
}
}
package cn.rocky2;
public class Run {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WordReverse word = new WordReverse();
word.run();
}
}
单元测试:
package cn.rocky2;
import org.junit.Test;
public class WordReverseTest {
@Test
public void testRun() {
String str = "how are you";
}
}
结果:
代码覆盖率:
总结:
在第一题的基础上运用for循环倒序输出即可实现!
以上是关于实验二 单元测试的主要内容,如果未能解决你的问题,请参考以下文章