ADD file via upload

main
p46nuwtki 5 months ago
parent 83cd3cb137
commit 2a34ab1309

@ -0,0 +1,148 @@
package test;
// 导入JUnit 3的核心包
import junit.framework.TestCase;
import junit.framework.TestSuite;
import view.gui.LoginGui;
import junit.framework.Test;
import java.io.PrintStream;
import javax.swing.SwingUtilities;
// 导入你自己的业务类
import ctrl.LoginCtrl;
/**
* @author Nisiyu
* @version 1.0
* @created 21-11-2025 15:26:28
*/
public class LoginIntegratedTest extends TestCase {
// 声明业务控制类对象
private LoginCtrl loginCtrl;
// 每个测试用例执行前初始化对象
protected void setUp() throws Exception {
super.setUp();
loginCtrl = new LoginCtrl();
}
// 测试用例1账号密码正确→登录成功返回true
public void testLoginSuccess() {
// 替换成你数据库里的真实账号密码必须是6-12位数字
boolean result = loginCtrl.validateLogin("2023210481", "123456");
// 断言结果应该是true
assertTrue("账号密码正确时登录应成功", result);
}
// 测试用例2密码错误→登录失败返回false
public void testLoginFail_PwdError() {
boolean result = loginCtrl.validateLogin("1001", "654321");
assertFalse("密码错误时登录应失败", result);
}
// 测试用例3账号错误→登录失败
public void testLoginFail_AccountError() {
boolean result = loginCtrl.validateLogin("9999", "123456");
assertFalse("账号错误时登录应失败", result);
}
// 测试用例4账号密码为空→登录失败
public void testLoginFail_EmptyInput() {
boolean result = loginCtrl.validateLogin("", "");
assertFalse("空输入时登录应失败", result);
}
// 测试用例5账号锁定→登录失败假设账号1002是锁定状态
public void testLoginFail_Lock() {
boolean result = loginCtrl.validateLogin("1002", "123456");
assertFalse("账号锁定时登录应失败", result);
}
// 测试用例6每日登录次数超限→登录失败
public void testLoginFail_CountLimit() {
boolean result = loginCtrl.validateLogin("1003", "123456");
assertFalse("次数超限时登录应失败", result);
}
// 测试用例7账号格式错误非数字→登录失败
public void testLoginFail_AccountFormat() {
boolean result = loginCtrl.validateLogin("abc123", "123456");
assertFalse("账号格式错误时登录应失败", result);
}
// 测试用例8密码长度不足→登录失败
public void testLoginFail_PwdLength() {
boolean result = loginCtrl.validateLogin("1001", "123");
assertFalse("密码长度不足时登录应失败", result);
}
// 测试用例9数据库连接失败→登录失败模拟异常后续可在业务层加逻辑
public void testLoginFail_DBError() {
boolean result = loginCtrl.validateLogin("1001", "123456");
assertFalse("数据库异常时登录应失败", result);
}
// 测试用例10特殊字符密码→登录失败
public void testLoginFail_SpecialPwd() {
boolean result = loginCtrl.validateLogin("1001", "123!@#");
assertFalse("特殊字符密码时登录应失败", result);
}
// 测试用例3账号格式错误5位数字→登录失败
public void testLoginFail_AccountLength() {
boolean result = loginCtrl.validateLogin("12345", "123456");
assertFalse("账号长度不足6位时登录应失败", result);
}
// 测试用例4账号格式错误含字母→登录失败
public void testLoginFail_AccountNonNumber() {
boolean result = loginCtrl.validateLogin("123a56", "123456");
assertFalse("账号含非数字时登录应失败", result);
}
// 测试用例5密码长度不足5位→登录失败
public void testLoginFail_PwdLength1() {
boolean result = loginCtrl.validateLogin("1001", "12345");
assertFalse("密码长度不足6位时登录应失败", result);
}
// 测试用例6密码含特殊字符→登录失败
public void testLoginFail_PwdSpecialChar() {
boolean result = loginCtrl.validateLogin("1001", "123!456");
assertFalse("密码含特殊字符时登录应失败", result);
}
// 测试用例7账号密码为空→登录失败
public void testLoginFail_EmptyInput1() {
boolean result = loginCtrl.validateLogin("", "");
assertFalse("空输入时登录应失败", result);
}
// 测试用例8账号正确、密码为空→登录失败
public void testLoginFail_EmptyPwd() {
boolean result = loginCtrl.validateLogin("1001", "");
assertFalse("密码为空时登录应失败", result);
}
// 测试用例9账号为空、密码正确→登录失败
public void testLoginFail_EmptyAccount() {
boolean result = loginCtrl.validateLogin("", "123456");
assertFalse("账号为空时登录应失败", result);
}
// 测试用例10账号长度超限13位→登录失败
public void testLoginFail_AccountOverLength() {
boolean result = loginCtrl.validateLogin("1234567890123", "123456");
assertFalse("账号长度超过12位时登录应失败", result);
}
// ========== 简化后的suite方法只保留GUI调用删除所有反射/编码代码 ==========
public static Test suite() {
TestSuite suite = new TestSuite(LoginIntegratedTest.class);
// 仅保留GUI调用如果不需要弹出LoginGui这行也可以删
SwingUtilities.invokeLater(() -> new LoginGui().showGui());
suite.setName("ATM登录测试套件");
return suite;
}
}
Loading…
Cancel
Save