首页 > 代码库 > 第三次作业

第三次作业

 

待测试函数说明如下:

 

 (一)验证邮箱格式是否正确

 public static boolean checkMail(String mail); 

说明:本函数验证的合法E-mail地址:

必须包含一个并且只有一个符号“@”     

第一个字符不得是“@”或者“.”     

 

不允许出现“@.”或者.@      

 

结尾不得是字符“@”或者“.”     

 

允许“@”前的字符中出现“+”     

 

不允许“+”在最前面,或者“+@”

(二)校验qq号格式是否正确        

public static String checkqq(String qq);       

说明:合法的qq号:         

515位。         

每位必须是数字         

0不能开头

 

三)将字符串转化成数字        

 

public static int stringCastToInt(String str);        

 

说明:例字符串0转换为数字0字符串1234转换为数字1234

 

字符串-1234转换为数字-1234字符串abcd无法转换为数字。

 

(四)找出字符串中第一个只出现一次的字符        

 

public static char toFirstChar(String str);       

 

说明:例ab3443ac”  第一个出现的字符为‘b’。

 

 

 

根据设计好的测试用例,我们采用junit框架进行测试脚本开发。

主要步骤如下:  

①在MyEclipse新建java项目,在项目中引入JUNIT4。  

②把需要测试的工具类导入进去,再新建测试用例,然后编写测试脚本。

③以junit Test运行该项目

④分析测试结果

测试类代码如下:

技术分享

技术分享

在字符串函数(一)测试脚本编写时,我们应该的输入字符串是不能转换成数字,在进行测试时我们预期的结果是应该函数抛出异常,我们可以用try catch去捕获这个异常,注意一定要调用fail()这个方法。经过查阅资料知Assert.fail()作用是:加在期望中不可能到达的地方,一旦到达,表明测试失败,结果与预期不同。

测试结果如下:编写完测试脚本后,以junit运行项目,测试结果如下图:

技术分享

通过上图可知总共测试失败的为3个,分别是testToChar()testCat1()testCast()。其它三个函数测试通过。  

①:首先我们对testCast()分析,根据编写的测试脚本可知,测试没通过是因为该函数输入fd2343,21314.34时函数没有抛出异常。我们对函数源代码进行分析,原来该函数没有对输入进行判断,不管输入的是什么字符串,都是转化它的ASCII码。经测试testCast(fd2343),输出为5922343,故该函数在字符串转化成正确的数字没问题,只是没有对输入进行判断。 函数改进:对输入进行判断,当输入字符串不能转换为数字时,需抛出异常。

②:然后我们对testToChar()分析,根据编写的测试脚本可知,函数实际的输出跟预期的输出不同。我们可以打印出函数的实际输出,经分析所有的输出结果可知,函数的输出为字符串最后一个只出现一次的字符。

System.out.println(baseUtil.toFirstChar("012345"));//5

System.out.println(baseUtil.toFirstChar("ab3443ac"));//c

System.out.println(baseUtil.toFirstChar("-23-23++y"));//y

System.out.println(baseUtil.toFirstChar("yYczzc"));//Y  

分析函数代码可知在进行遍历查找的时候,找到字符时,函数没有return

 

函数改进:在遍历查找时,找到字符后break

 

第三次作业