软工作业PSP与单元测试训练
任务说明(二选一):
一、实现模块判断传入的身份证号码的正确性;
二、实现模块判断传入的电子邮箱账号的正确性;
实现要求:
一、实现功能模块;
二、针对所实现的模块编写对应的单元测试代码;
三、需要按PSP流程进行工作量估算,填写任务清单工作量估算表。
实现模块判断传入的电子邮箱账号的正确性:
单元测试代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入你要验证的邮箱:");
String mail = sc.next();
// 输入的内容不能为空
if (!mail.trim().isEmpty()) {
System.out.println("你输入的内容不为空");
}
//@出现的下标
int atIndex = 0;
//.出现的下标
int fullIndex = 0;
//第一次出现的下标
atIndex = mail.indexOf('@', 0);
//第一次出现的下标
fullIndex = mail.indexOf('.', 0);
//判断@是否出现.后面
if(atIndex >= fullIndex) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
//判断@是否只有一个
if(mail.indexOf('@', 0) != mail.lastIndexOf('@')) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
//判断.是否只有一个
if(mail.indexOf('.', 0) != mail.lastIndexOf('.')) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
//判断@前面是否是1到40个字符
if(!(atIndex >= 1 && atIndex <= 40)) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
//判断@到.是否为只能是1到40个字符
if(!(fullIndex - atIndex - 1 >= 1 && fullIndex - atIndex - 1 <= 40)) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
//判断@到.直接的是否为字母或数字
for (int i = atIndex+1; i < fullIndex; i++) {
if (!((mail.charAt(i) >= 'a' && mail.charAt(i) <= 'z')||(mail.charAt(i) >= 'A' && mail.charAt(i) <= 'Z')||(mail.charAt(i)>='0'&&mail.charAt(i)<='9'))) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
}
//判断.后面的是2到3长度的字符
if (!(mail.length() - fullIndex - 1 >= 2 && mail.length() - fullIndex -1 <= 3) ){
System.out.println("此邮箱格式错误!");
System.exit(0);
}
//判断.后面的是英文字母
for (int i = fullIndex+1; i < mail.length(); i++) {
if (!((mail.charAt(i) >= 'a' && mail.charAt(i) <= 'z')||(mail.charAt(i) >= 'A' && mail.charAt(i) <= 'Z'))) {
System.out.println("此邮箱格式错误!");
System.exit(0);
}
}
System.out.println("此邮箱格式正确!");
}
}
任务清单工作量估算表: