首页 > 代码库 > 第三次作业
第三次作业
待测试函数说明如下:
(一)验证邮箱格式是否正确
public static boolean checkMail(String mail);
说明:本函数验证的合法E-mail地址:
必须包含一个并且只有一个符号“@”
第一个字符不得是“@”或者“.”
不允许出现“@.”或者.@
结尾不得是字符“@”或者“.”
允许“@”前的字符中出现“+”
不允许“+”在最前面,或者“+@”
(二)校验qq号格式是否正确
public static String checkqq(String qq);
说明:合法的qq号:
5到15位。
每位必须是数字
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。
第三次作业