нужно протестировать функцию Food eat() в JUnit: убедится в том, что функция всё же удалила объект из списка.
import java.util.ArrayList;
/**
* Класс Человек
*/
class Human {
/** Имя человека*/
private String name;
/**
* Конструктор по умолчанию
*/
Human() {
name = "";
}
/**
* Конструктор с параметрами
* @param name имя человека
*/
Human (String name) {
this.name = name;
}
/**
* Сетер имени человека
* @param n имя человека
*/
void setName(String n) {
name = n;
}
/**
* @return имя человека
*/
String getName() {
return name;
}
/**
* Метод "кушания". Удаляет блюдо из списка
* @param foods список блюд
* @return блюдо
*/
Food eat(ArrayList<Food> foods) {
Food f = foods.get(foods.size()-1);
foods.remove(foods.size()-1);
return f;
}
}
public class HumanTest {
List<Food> list;
@Before
public void prepareList(){
list = new ArrayList<>();
list.add(new Food("meat"));
list.add(new Food("fruits"));
list.add(new Food("fish"));
}
@Test
public void eatReturnLastFoodFromList() {
}
@Test
public void eatRemovLastFoodFromList() {
Human h = new Human();
h.eat(list);
assertFalse(list.contains(new Food("fish")));
assertTrue(list.size() == 2);
}
}
Во-первых, метод eat()
можно упростить:
Food eat(ArrayList<Food> foods) {
return foods.remove(foods.size() - 1);
}
Тест очень простой, если ссылки на объекты Food
не повторяются в вашем списке (т.е. один и тот же объект не добавлен два раза в список). Нужно проверить, что размер списка уменьшился на единицу, что съеден именно последний объект, что съеденный объект больше не в списке:
@BeforeMethod
public void setUp() {
//prepare foodList and human objects
}
@Test
public static void testEatMethod() {
int size = foodList.size();
Food foodToBeDeleted = foodList.get(foodList.size() - 1);
Food foodDeleted = human.eat(foodList);
assertEquals(foodDeleted, foodToBeDeleted);
assertEquals(foodList.size(), size - 1);
assertFalse(foodList.contains(foodToBeDeleted));
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я пользуюсь log4j и мне нужно указать файл для логирования во время runtimeПодскажите пожалуйста как мне это сделать
Я считываю *mp3 файлы но покуда только по именам, как еще добавить сюда вывод альбома, длительности и путь непосредственно к файлу
Я слышал, что у frontpad есть apiМне нужно через Java подключиться к frontpad и отправлять с мобильного приложения заказы
Вот фрагмент кода в котором задан конструктор, принимающий функциональный интерфейс, принимающий и возвращающий DoubleМожно вместо параметра...