Как сделать проверку на то, что исключение действительно выбросится?

188
05 января 2020, 11:10

на примере функции water(), в которой есть проверка на пустую строку и null

public class Farmer extends Human {
    private int planted;
    private int watered;
    private ArrayList<Veget> vegetable = new ArrayList<Veget>();
    public int getVegetSize() {
        return vegetable.size();
    }
    public int getPlanted() {
        return planted;
    }
    public int getWatered() {
        return watered;
    }
    public Farmer () {
        super();
        planted = 0;
        watered = 0;
    }
    public Farmer (String name) {
        super (name);
        planted = 0;
        watered = 0;
    }
    public void plant() {
        planted++;
    }
    public void water() {
        if (planted <= 0) {
            throw new IllegalArgumentException("с начало нужно посадить растение");
        }
        else {
            planted--;
            watered++;
        }
    }
    public void collect () {
        if (watered <= 0) {
            throw new IllegalArgumentException("растения необходимо поливать");
        }
        else{
            watered--;
            Veget veget = new Veget();
            veget.setRandVeget();
            veget.setName("Enums.Vegetable");
            vegetable.add(veget);
        }
    }

Правильно ли я написал тест или в логике теста нужно что-то дописать ?(под логикой, я понимаю - это вызвать water() без вызова plant() и должно быть исключение)

@Test public void whenCheckWaterThrowException() throws Exception { assertThat(IllegalArgumentException.class, is(new Farmer().water)); }

READ ALSO
мой пример сеттера (инкапсуляция)

мой пример сеттера (инкапсуляция)

Не пойму почему выводит:

158
Hibernate разница между Session и EntityManager

Hibernate разница между Session и EntityManager

Хотелось бы понять в чем разница между этими двумя объектамиИз прочитанного в интернете я понял, что EntityManager это объект, полностью удовлетворяющий...

184