实验二

《软件测试》实验

实验二 单元测试                                                      

 

实验目的

 

(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%。

3、 学习单元测试代码覆盖率工具的使用

(1)把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;

(2)编写单元测试进行测试;

(3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。

package cn.zhi.mju;
/**
*
* @author chenyazhi
*
*/
//import java.util.*;

public class Action {
/**
*
* @param 划分单词
*/
public void findWord(String str){//划分单词
//首字符是空格或TAB删除首字符
for(int i = 0;i<str.length();i++){
if(str.charAt(0)==' '||str.charAt(0)==' '){
str=str.substring(1);
}
}

String[] arrayWord =str.split("\\s+|[,.!?]");
this.frequency(arrayWord);
}

public void frequency(String[] arrayWord){
String[] word = new String[arrayWord.length];//存放遍历过的单词
int[] time=new int[arrayWord.length];//存放记录单词出现次数
for(int i=0;i<arrayWord.length;i++){
boolean t = true;
for(int j=0;j<arrayWord.length;j++){//遍历已遍历过的单词表
if(arrayWord[i].equals(word[j])){
t=false;//如果单词重复则跳过
}
}
if(t==true){//单词初始次数为1
word[i]=arrayWord[i];
time[i]=1;
for(int j=i+1;j<arrayWord.length;j++){//遍历字符串,记录次数
if(arrayWord[i].equals(arrayWord[j])){
time[i]++;
}
}
}
}
this.printWord(arrayWord,time,word);
}
/**
*
* @从小到大输出单词统计次数
*/


public void printWord(String[] arrayWord,int time[],String[] word){
//排序
String min;
for(int i = 0;i<time.length;i++){
for(int j = 0;j<time.length;j++){
if(j!=time.length-1)
if(time[j]>=time[j+1]){//将最大的值向右移动
time[j]=time[j+1]+time[j];
time[j+1]=time[j]-time[j+1];
time[j]=time[j]-time[j+1];
min=word[j+1];
word[j+1]=word[j];
word[j]=min;
}
}
}

for(int i = 0;i<arrayWord.length;i++){//遍历输出次数
if(word[i]!=null){
System.out.println("单词:"+word[i]+"出现了"+time[i]+"次。");
}
}
}
//以下是迭代器
/*public void frequency(String[] arrayWord){
//新建集合word
Map<String,Integer> word = new HashMap<String,Integer>();
boolean t = true;
for(int i=0;i<arrayWord.length;i++){ //遍历arrayWord数组
//获得迭代器
Iterator<String> it = word.keySet().iterator();
while(it.hasNext()){//遍历已遍历过的单词表
String key =(String)it.next(); //将遍历过的单词赋值给key
if(key.equals(arrayWord[i])){ //判断当前单词arrayWord[i]是否遍历过
t=false; //遍历过使其状态为不可遍历
}
else{
t=true;
}
}
if(t==true){ //单词arrayWord[i]为可遍历状态
word.put(arrayWord[i],1); //初始化为遍历过次数1
int x=1; //x为单词出现次数
for(int j=i+1;j<arrayWord.length;j++){ //遍历 当前单词 以后的其它单词
if(arrayWord[i].equals(arrayWord[j])){ //判断 当前单词 是否再次出现
x=x+1; //再次出现次数+1
word.remove(arrayWord[i]); //删除已保存次数
word.put(arrayWord[i], x); //保存次数+1
}
}
}
}
Iterator<String> i = word.keySet().iterator(); //创建迭代器
while(i.hasNext()){ //遍历保存的单词遍历表
String key =(String)i.next(); //获得单词
System.out.println("单词:"+key+"出现了"+word.get(key)+"次。"); //输出单词出现次数
}

}*/

}

package cn.zhi.mju;
/**
*
* @author chenyazhi
*
*/
public class Main {

/**
* @param args
*/
@SuppressWarnings("unused")
public static void main(String[] args) {
// TODO Auto-generated method stub
Main m = new Main();
View v = new View();
}
}

package cn.zhi.mju;
import java.util.Scanner;
/**
*
* @author chenyazhi
*
*/
public class View {
/**
* 界面生成
*/
public View(){
Scanner input =new Scanner(System.in);
System.out.println("请输入字符串,单词用空格隔开,回车结束:");
String str=input.nextLine();

Action a = new Action();
a.findWord(str);
}
}

3.

package cn.zhi.mju;

import java.util.Scanner;

public class Main {
public static void main (String[] args){
Main a = new Main();
a.View();
}
public void findWord(String str){
String[] arrayWord =str.split("\\s+|[,!?.]");
for(int i=arrayWord.length-1;i>=0;i--){
System.out.print(arrayWord[i]+" ");
}
}
public void View(){
Scanner input =new Scanner(System.in);
System.out.println("请输入字符串,单词用空格隔开,回车结束:");
String str=input.nextLine();
Main a = new Main();
a.findWord(str);
}
}

posted on 2016-04-05 17:52  3137102247  阅读(139)  评论(0编辑  收藏  举报

导航