Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
08 Ноя 2023
2 мин
613

Проверка отсутствия вызова метода с использованием Mockito

Пройдите тест, узнайте какой профессии подходите

Одной из распространенных задач при проведении модульного тестирования является проверка, что определенный метод не был вызван в процессе теста.

Одной из распространенных задач при проведении модульного тестирования является проверка, что определенный метод не был вызван в процессе теста. Это может быть полезно в случаях, когда важно убедиться, что определенное действие не выполняется.

Возьмем для примера следующий интерфейс и класс:

public interface Dependency {
    void someMethod();
}

public class Foo {
    private final Dependency dependency;

    public Foo(Dependency dependency) {
        this.dependency = dependency;
    }

    public void bar() {
        // some code
    }
}

Предположим, что мы хотим протестировать метод bar() класса Foo и убедиться, что в процессе его работы не вызывается метод someMethod() из зависимости Dependency.

Рассмотрим тестовый класс:

public class FooTest {
    @Test
    public void testBarMethod() {
        Dependency dependency = Mockito.mock(Dependency.class);
        Foo foo = new Foo(dependency);
        foo.bar();
        // Проверка того, что метод someMethod не был вызван
    }
}

Для проверки того, что метод не был вызван, можно использовать библиотеку Mockito и ее метод verify(). Этот метод служит для проверки, что определенное поведение произошло.

В данном случае нам нужно проверить, что метод someMethod() не был вызван ни разу. Это можно сделать с помощью метода verify() и константы never(). Вот как это будет выглядеть:

public class FooTest {
    @Test
    public void testBarMethod() {
        Dependency dependency = Mockito.mock(Dependency.class);
        Foo foo = new Foo(dependency);
        foo.bar();
        Mockito.verify(dependency, Mockito.never()).someMethod();
    }
}

В этом коде вызов Mockito.verify(dependency, Mockito.never()).someMethod(); означает, что мы проверяем, что на мок-объекте dependency метод someMethod() не был вызван ни разу.

Таким образом, можно проверить, что метод не был вызван в процессе теста, используя библиотеку Mockito.

Добавить комментарий