
Привет, меня зовут Дмитрий и я программист на языке Java; Сегодня я хочу поделиться своим опытом написания кода и тестирования методов evenOddNumber и numberInInterval, а также добавления новой функции в класс UserRepository.Для начала, я ознакомился с кодом, который предоставлен в презентации, и приступил к написанию тестов для метода evenOddNumber. Этот метод проверяет, является ли число четным или нечетным. Чтобы достичь 100% покрытия кода, мои тесты включали проверку как для четных, так и для нечетных чисел.java
import org.junit.Assert;
import org.junit.Test;
public class EvenOddNumberTest {
@Test
public void testEvenNumber {
EvenOddNumber evenOddNumber new EvenOddNumber;
boolean isEven evenOddNumber.isEven(4);
Assert.assertTrue(isEven);
}
@Test
public void testOddNumber {
EvenOddNumber evenOddNumber new EvenOddNumber;
boolean isEven evenOddNumber.isEven(7);
Assert.assertFalse(isEven);
}
}
После написания тестов я запустил их и убедился, что все они проходят успешно. Теперь я могу быть уверен, что метод evenOddNumber работает правильно и имеет 100% покрытия тестами.Далее я перешел к написанию и тестированию метода numberInInterval, который проверяет, попадает ли число в интервал (25;100). Мой подход был аналогичен предыдущему⁚ я написал два теста, один для числа внутри интервала и второй для числа за его пределами.java
import org.junit.Assert;
import org.junit.Test;
public class NumberInIntervalTest {
@Test
public void testNumberInsideInterval {
NumberInInterval numberInInterval new NumberInInterval;
boolean isInInterval numberInInterval.isInsideInterval(50);
Assert.assertTrue(isInInterval);
}
@Test
public void testNumberOutsideInterval {
NumberInInterval numberInInterval new NumberInInterval;
boolean isInInterval numberInInterval.isInsideInterval(130);
Assert.assertFalse(isInInterval);
}
}
После запуска тестов я удостоверился, что метод numberInInterval работает корректно и имеет полное тестовое покрытие.И, наконец, мы переходим к третьему заданию ― добавлению функции в класс UserRepository, которая разлогинивает всех пользователей, кроме администраторов. Для этого я расширил класс User новым свойством, которое указывает, обладает ли пользователь админскими правами. Затем я добавил новый метод в UserRepository, который использует это свойство для разлогинивания пользователей.java
public class UserRepository {
private List
public UserRepository {
users new ArrayList<>;
}
public void add(User user) {
users.add(user);
}
public void logoutAllExceptAdmins {
for (User user ⁚ users) {
if (!user.isAdmin) {
user.logout;
}
}
}
}
Для тестирования этой функции я создал несколько пользователей, некоторые из них с админскими правами, а затем вызвал метод logoutAllExceptAdmins. После этого я проверил статус всех пользователей и убедился, что только неадминистраторы были разлогинены.