Привет! Меня зовут Алексей, и я хочу поделиться своим опытом написания кода на Java и тестирования его с использованием библиотеки AssertJ․Сначала, давайте создадим класс Calculator․ Он будет содержать метод calculateDiscount, который будет принимать сумму покупки и процент скидки, и возвращать сумму с учетом скидки․ Для этого нам понадобится использовать формулу⁚
сумма скидки (сумма покупки * процент скидки) / 100
Теперь, приступим к написанию кода⁚
java
public class Calculator {
public double calculateDiscount(double purchaseAmount, double discountPercent) {
if (purchaseAmount <= 0 || discountPercent < 0 || discountPercent > 100) {
throw new ArithmeticException(″Недопустимые аргументы″);
}
double discountAmount (purchaseAmount * discountPercent) / 100;
return purchaseAmount ⏤ discountAmount;
}
}
Здесь мы добавили проверку на недопустимые аргументы․ Если сумма покупки меньше или равна нулю, либо процент скидки меньше нуля или больше 100, метод выбрасывает исключение ArithmeticException․Теперь, давайте напишем тесты для проверки этого поведения с использованием библиотеки AssertJ․java
import org․junit․jupiter․api․Test;
import static org․assertj․core․api․Assertions․*;
public class CalculatorTest {
private final Calculator calculator new Calculator;
@Test
public void calculateDiscount_validArguments_returnsDiscountedAmount {
double purchaseAmount 100․0;
double discountPercent 10․0;
double expectedDiscountedAmount 90․0;
double actualDiscountedAmount calculator․calculateDiscount(purchaseAmount, discountPercent);
assertThat(actualDiscountedAmount)․isEqualTo(expectedDiscountedAmount);
}
@Test
public void calculateDiscount_invalidArguments_throwsArithmeticException {
double purchaseAmount -100․0;
double discountPercent 10․0;
assertThatThrownBy( -> calculator․calculateDiscount(purchaseAmount, discountPercent))
․isInstanceOf(ArithmeticException․class)
․hasMessage(″Недопустимые аргументы″);
}
}
В первом тесте мы проверяем, что метод calculateDiscount возвращает сумму с учетом скидки, когда аргументы валидны․ Во втором тесте мы проверяем, что метод выбрасывает исключение ArithmeticException, когда аргументы недопустимы․
Заметьте, что мы используем метод assertThatThrownBy из библиотеки AssertJ для проверки выбрасывания исключения․
Теперь, когда у нас есть код и тесты, мы можем запустить их и убедиться, что все работает должным образом․
Вот и всё! Надеюсь, мой опыт будет полезен для написания кода на Java и тестирования его с использованием библиотеки AssertJ․ Удачи в программировании!