Tsudzukeru
@Tsudzukeru

Почему срабатывает дефолтная реализация stub метода?

Допустим есть класс A, с методом doSomething(arg:Int):Boolean, который возращает Boolean и может выбросить исключение. Код его не привожу т.к выдуманный пример.
Я хочу сделать stub этого метода. Делаю его следующим образом.

class ATest{
    @Test
    fun `test method`(){
        val a = mock(A::class.java)
        val param = 5
        `when`(a.doSomething(param)).thenReturn(false)
        assertFalse(a.doSomething(param))
    }
}


При выполнении кода вылетает NPE. Почему так происходит? Ведь Mock это экземпляр класса, с пустой реализацией методов. По Дефолту мой метод должен вернуть false. Я дополнительно это программирую (хотя можно было и не делать) с помощью создания stub `when`(a.doSomething(param)).thenReturn(false). Откуда там взяться исключению? Он же пустой если мы создаем Mock данного класса?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
Tsudzukeru
@Tsudzukeru Автор вопроса
нужно сделать stub метод open и тогда всё работает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы