软件测试赛学生赛样题-01-单元测试 任务四 题目3
题目3:
题目:
进行系统注册时通常需要输入用户名和密码,其中用户名要求由8个字母组成、密码由6个(含6)以上数字组成。
满足要求,则提示“注册成功”,否则根据实际情况提示“不符合要求”(**为用户名或密码)。
编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中containsString断言判断输出文字期望结果值和实际返回值是否一致。
需求分析:
输入:两个参数:username(用户名)和 password(密码)
判断:
- 检查传入的 username 和 password 是否为 null。如果一者为 null,则返回错误消息 “用户名或密码不符合要求”。
- 检查 username 的长度是否正好为8个字符同时检查 password 的长度是否至少为6个字符,如果不是,返回错误消息 “用户名和密码不符合要求”。
- 检查 username 的长度是否正好为8个字符。如果不是,返回错误消息 “用户名不符合要求”。
- 检查 password 的长度是否至少为6个字符。如果不是,返回错误消息 “密码不符合要求”。
- 遍历 password 中的字符,确保它们都是数字。如果包含非数字字符,返回错误消息 “密码不符合要求”。
- 如果所有校验都通过,则返回 “注册成功”。
代码实现:
以下是Java类和JUnit测试类的概要示例代码:
首先是RegistrationSystem类:
public class RegistrationSystem {
public String register(String username, String password) {
if (username == null || password == null) {
return "用户名或密码不符合要求";
}
if ((username.length() != 8) && (password.length() < 6)) {
return "用户名和密码不符合要求";
}
if (