找回密码
 立即注册
搜索
热搜: Python Java C Html PHP
查看: 712|回复: 0

Java程序测试 账号验证

[复制链接]

42

主题

10

回帖

8

积分

管理员

积分
8

原始用户

发表于 2026-3-16 14:53:10 | 显示全部楼层 |阅读模式

试题2、根据题目描述,编写Java代码完成测试。

本题分值:20
考核时间:30分钟
考核方式:实操
考核内容:现AccountCheck类中有check函数,用来验证账号是否正确。代码如下:
  1. public class AccountCheck {

  2.     public boolean check(String account) {

  3.         if (account.isEmpty()) {

  4.             return false;

  5.         }

  6.         int length = account.length();

  7.         if (length < 6 || length >= 12) {

  8.             return false;

  9.         }

  10.         if (account.matches("[a-zA-Z][a-zA-Z_0-9]*")) {

  11.             return true;

  12.         }

  13.         return false;

  14.     }

  15. }
复制代码
  1. import org.junit.Test;

  2. import static org.junit.Assert.*;

  3. public class AccountCheckTest {
  4.     AccountCheck ac = new AccountCheck();
  5.     //账号条件:不能为空,长度在6到12位之间(不包括12位),结尾可以是大小写字母,下划线或者数字,而开头必须是大小写字母。

  6.     //测试符合条件的账号
  7.     @Test
  8.     public void checkValid(){
  9.         //边界条件,接近账号最短要求
  10.         //小写开头
  11.         assertTrue(ac.check("abcdef"));//7位账号
  12.         assertTrue(ac.check("abcde1"));//7位账号,数字结尾
  13.         assertTrue(ac.check("abcdeF"));//7位账号,大写字母结尾
  14.         assertTrue(ac.check("abcde_"));//7位账号,下划线结尾
  15.         //大写开头
  16.         assertTrue(ac.check("Abcdef"));//7位账号
  17.         assertTrue(ac.check("Abcde1"));//7位账号,数字结尾
  18.         assertTrue(ac.check("AbcdeF"));//7位账号,大写字母结尾
  19.         assertTrue(ac.check("Abcde_"));//7位账号,大写字母结尾

  20.         //边界条件,接近账号最长要求
  21.         //小写开头
  22.         assertTrue(ac.check("abctyuidef"));//11位账号
  23.         assertTrue(ac.check("abctyuide1"));//11位账号,数字结尾
  24.         assertTrue(ac.check("abctyuideF"));//11位账号,大写字母结尾
  25.         assertTrue(ac.check("abctyuide_"));//11位账号,下划线结尾
  26.         //大写开头
  27.         assertTrue(ac.check("Abctyuidef"));//11位账号
  28.         assertTrue(ac.check("Abctyuide1"));//11位账号,数字结尾
  29.         assertTrue(ac.check("AbctyuideF"));//11位账号,大写字母结尾
  30.         assertTrue(ac.check("Abctyuide_"));//11位账号,下划线结尾
  31.     }

  32.     //测试不符合条件的空账号
  33.     @Test
  34.     public void checkEmpty() {
  35.         assertFalse(ac.check(""));
  36.     }

  37.     //测试长于限制的账号
  38.     @Test
  39.     public void checkShort(){
  40.         //小写开头
  41.         assertFalse(ac.check("abcdefghijkl"));
  42.         assertFalse(ac.check("abcdefghijk1"));//数字结尾
  43.         assertFalse(ac.check("abcdefghijk_"));//下划线结尾
  44.         assertFalse(ac.check("abcdefghijkL"));//大写字母结尾
  45.         //大写开头
  46.         assertFalse(ac.check("Abcdefghijkl"));
  47.         assertFalse(ac.check("Abcdefghijk1"));//数字结尾
  48.         assertFalse(ac.check("Abcdefghijk_"));//下划线结尾
  49.         assertFalse(ac.check("AbcdefghijkL"));//大写字母结尾
  50.     }

  51.     //测试短于限制的账号
  52.     @Test
  53.     public void checkLong(){
  54.         //小写开头
  55.         assertFalse(ac.check("a"));
  56.         assertFalse(ac.check("ab"));
  57.         assertFalse(ac.check("ab1"));//数字结尾
  58.         assertFalse(ac.check("abc_"));//下划线结尾
  59.         assertFalse(ac.check("abcdE"));//大写字母结尾
  60.         //大写开头
  61.         assertFalse(ac.check("A"));
  62.         assertFalse(ac.check("Ab"));
  63.         assertFalse(ac.check("Ab1"));//数字结尾
  64.         assertFalse(ac.check("Abcd"));//下划线结尾
  65.         assertFalse(ac.check("AbcdE"));//大写字母结尾
  66.         //更多情况的的大写结尾
  67.         assertFalse(ac.check("A"));
  68.         assertFalse(ac.check("aB"));
  69.         assertFalse(ac.check("abC"));
  70.         assertFalse(ac.check("abcD"));
  71.         assertFalse(ac.check("abcdE"));
  72.         //更多情况的下划线结尾
  73.         assertFalse(ac.check("a_"));
  74.         assertFalse(ac.check("ab_"));
  75.         assertFalse(ac.check("abc_"));
  76.         assertFalse(ac.check("abcd_"));
  77.     }
  78. }
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|HELIXABYSS

GMT+8, 2026-7-21 21:17 , Processed in 0.052900 second(s), 19 queries .

Powered by Discuz! X3.5

© 2024-2026 HELIXABYSS

快速回复 返回顶部 返回列表