Моя статья будет о том, как я написал метод calculateDiscount на языке Java и проверил его с использованием библиотеки AssertJ. Данный метод принимает сумму покупки и процент скидки, а затем возвращает сумму с учетом скидки. Если метод получает недопустимые аргументы, он выбрасывает исключение ArithmeticException.Для начала, я создал класс Calculator и в нем объявил статический метод calculateDiscount, который принимает два аргумента ⎼ сумму покупки и процент скидки⁚
java
public class Calculator {
public static double calculateDiscount(double purchaseAmount, double discountPercent) {
// реализация метода
}
}
Далее, я приступил к написанию самого метода calculateDiscount. С использованием формулы для расчета скидки, я вычислил сумму с учетом скидки⁚
java
public static double calculateDiscount(double purchaseAmount, double discountPercent) {
double discount purchaseAmount * (discountPercent / 100);
return purchaseAmount ‒ discount;
}
Теперь, чтобы проверить корректность работы этого метода, я решил использовать библиотеку AssertJ. С ее помощью я могу утверждать, что определенное условие должно быть истинным.Я написал несколько тестов, чтобы проверить работу метода calculateDiscount в разных ситуациях⁚
java
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
public class CalculatorTest {
@Test
public void testCalculateDiscount {
Assertions.assertThat(Calculator.calculateDiscount(100٫ 10)).isEqualTo(90);
}
@Test
public void testCalculateDiscountWithZeroPercent {
Assertions.assertThat(Calculator.calculateDiscount(100, 0)).isEqualTo(100);
}
@Test
public void testCalculateDiscountWithInvalidArguments {
Assertions.assertThatThrownBy( -> Calculator.calculateDiscount(100, -10))
;isInstanceOf(ArithmeticException.class)
.hasMessage(″Invalid discount percent⁚ -10″);
}
}
В первом тесте я проверяю, что метод calculateDiscount верно вычисляет сумму с учетом скидки. Во втором тесте я проверяю, что при проценте скидки равном нулю, сумма покупки остается без изменений. В третьем тесте я проверяю, что при передаче недопустимого значения процента скидки, метод выбрасывает исключение ArithmeticException.
С помощью AssertJ я проверяю ожидаемый результат с помощью метода isEqualTo и осуществляю проверку исключения с помощью методов isInstanceOf и hasMessage.
Таким образом, я использовал библиотеку AssertJ для проверки метода calculateDiscount класса Calculator на языке Java. Метод выполняет расчет суммы с учетом скидки и корректно обрабатывает недопустимые аргументы. Мои тесты подтверждают правильность работы этого метода.