编写测试类,完成如下上面代码中类方法的测试 实现如下业务: 开户,存款100,查询余额,取款50,查询余额,取款200,查询余额。
时间: 2024-10-18 18:20:59 浏览: 7
当然,这里是一个针对`PersonalBankAccount`类的测试类,用于测试开户、存款、取款以及查询余额功能:
```java
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class PersonalBankAccountTest {
// 初始化一个个人银行账户对象
private PersonalBankAccount account;
@Before
public void setUp() {
// 开户,设置初始参数
account = new PersonalBankAccount("testAccount1", "User1", "password1");
}
@Test
public void testDepositAndWithdrawal() {
// 存款100元
account.deposit(100);
// 查询余额,应该等于100元
assertEquals("存款后的余额不正确", 100, account.getBalance(), 0.0);
// 取款50元
account.withdraw(50);
// 再次查询余额,应该等于50元
assertEquals("取款后的余额不正确", 50, account.getBalance(), 0.0);
// 再取款200元,由于余额不足,不会执行,保持余额不变
account.withdraw(200);
// 查询余额还是50元,因为第一次取款后就没再存过
assertEquals("第二次取款后的余额不正确", 50, account.getBalance(), 0.0);
}
@Test
public void testChangePassword() {
// 验证原始密码
assertTrue(account.changePassword("password1", "newPassword"));
// 再尝试使用新密码
assertFalse(account.changePassword("password1", "newPassword")); // 应该失败,因为已经改变
}
@Test
public void testShowAccountInfo() {
// 显示账户信息之前,余额应该是50元
account.showAccountInfo();
// 可能会输出类似这样的信息:账户号:testAccount1,用户名:User1,当前余额:50.0
}
// 转换getBalance方法为公开的,以便于测试
public double getBalance() {
return account.balance;
}
}
```
这个测试类包括了对`deposit`、`withdraw`、`changePassword`和`showAccountInfo`方法的基本测试场景。注意,为了方便测试,`getBalance`方法在这里被转换为了公开的,但在实际项目中,它通常是私有的,并通过`balance`字段访问。
阅读全文