Exercice JUnit 5
Exercice 1:
1 : Création de la classe BankAccount
Créez une classe BankAccount avec les fonctionnalités suivantes : dépôt, retrait,
consultation du solde et gestion des exceptions pour des cas invalides.
Code : BankAccount.java
public class BankAccount {
private double balance;
public BankAccount(double initialBalance) {
if (initialBalance < 0) {
throw new IllegalArgumentException("Initial balance cannot be negative.");
}
this.balance = initialBalance;
}
public void deposit(double amount) {
if (amount <= 0) {
throw new IllegalArgumentException("Deposit amount must be positive.");
}
balance += amount;
}
public void withdraw(double amount) {
if (amount <= 0) {
throw new IllegalArgumentException("Withdrawal amount must be positive.");
}
if (amount > balance) {
throw new IllegalArgumentException("Insufficient balance.");
}
balance -= amount;
}
public double getBalance() {
return balance;
}
}
2 : Écriture des tests unitaires
Créez une classe de test BankAccountTest avec des cas de test pour valider le
comportement attendu de la classe BankAccount.
Code : BankAccountTest.java
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
public class BankAccountTest {
@Test
void testInitialBalance() {
BankAccount account = new BankAccount(100.0);
assertEquals(100.0, account.getBalance());
}
@Test
void testDeposit() {
BankAccount account = new BankAccount(100.0);
account.deposit(50.0);
assertEquals(150.0, account.getBalance());
}
@Test
void testWithdraw() {
BankAccount account = new BankAccount(100.0);
account.withdraw(50.0);
assertEquals(50.0, account.getBalance());
}
@Test
void testDepositNegativeAmount() {
BankAccount account = new BankAccount(100.0);
assertThrows(IllegalArgumentException.class, () -> account.deposit(-10.0));
}
@Test
void testWithdrawNegativeAmount() {
BankAccount account = new BankAccount(100.0);
assertThrows(IllegalArgumentException.class, () -> account.withdraw(-10.0));
}
@Test
void testWithdrawInsufficientBalance() {
BankAccount account = new BankAccount(100.0);
assertThrows(IllegalArgumentException.class, () -> account.withdraw(150.0));
}
void testDepositParameterized(double initialBalance, double deposit, double
expectedBalance) {
BankAccount account = new BankAccount(initialBalance);
account.deposit(deposit);
assertEquals(expectedBalance, account.getBalance());
}
}
Exercice 2:
la classe Circle avec une méthode area() calcule l'aire du cercle :
public class Circle {
// Constante pour Pi
private static final double PI = 3.14159;
// Méthode pour calculer l'aire du cercle
public double area(double radius) {
if (radius < 0) {
throw new IllegalArgumentException("Le rayon ne peut pas
être négatif.");
}
return PI * radius * radius;
}
}
Créez une classe pour tester les different cas de teste