powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Junit Test 4 ловим исключение
4 сообщений из 4, страница 1 из 1
Junit Test 4 ловим исключение
    #40131055
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здрасти :))

Вопрос по Junit4

Вот так все работает:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    @Rule
    public ExpectedException exceptionRule = ExpectedException.none();

    @Test//(expected = NotExistStorageException.class)
    public void deleteAndNotExistStorageException() {
        // Удаляем несколько рандомных резюме из коллекции
        //  и проверяем их наличие в хранилище (должен
        // броситься NotExistStorageException

     for (int i = 0; i < ARRAY_STORAGE.size(); i += ((int) (Math.random() * 10))) {
            String randomUuid = "uuid" + i;
            assertTrue(ARRAY_STORAGE.delete(randomUuid));
/*            Throwable exception = assertThrows(NotExistStorageException.class, (ThrowingRunnable) ARRAY_STORAGE.get(randomUuid));
            assertEquals("Резюме с uuid = " + randomUuid + " не существует!", exception.getMessage());*/
            {
                exceptionRule.expect(NotExistStorageException.class);
                ARRAY_STORAGE.get(randomUuid);
            }
        }
    }



Но ExpectedException.none - depricated. Пытаюсь как-то это реализовать через Throwable exception = assertThrows(); (закомментированный код в цикле for), но там как раз не работает (см картинку). Очевидно, я что-то не так пишу, но мой (прямо скажет не самый блестящий) уровень английского не сильно помогает понять, где я ошибаюсь. Может вы подскажете?
...
Рейтинг: 0 / 0
Junit Test 4 ловим исключение
    #40131071
razliv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут написано что ожидаемое исключение NotExistStorage, а вылетел NullPointerException.

Какого типа перменная ARRAY_STORAGE, и возможно get выкидывает NullPointerException ?
...
Рейтинг: 0 / 0
Junit Test 4 ловим исключение
    #40131123
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AssertThrows
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 
public static <T extends Throwable> T assertThrows(Class<T> expectedThrowable,
                                                   ThrowingRunnable runnable)

    Asserts that runnable throws an exception of type expectedThrowable when executed. If it does,
 the exception object is returned. If it does not throw an exception, an AssertionError is thrown. If it 
throws the wrong type of exception, an AssertionError is thrown describing the mismatch; the 
exception that was actually thrown can be obtained by calling Throwable.getCause().

    Parameters:
        expectedThrowable - the expected type of the exception
        runnable - a function that is expected to throw an exception when executed 
    Returns:
        the exception thrown by runnable
    Since:
        4.13


If it throws the wrong type of exception, an AssertionError is thrown describing the mismatch;
Если будет выброшен неправильный тип исключения, то AssertionError будет выброшен с описанием несоответсвтия.

Вот здесь (ThrowingRunnable) ARRAY_STORAGE.get(randomUuid) тут у тебя выпадает NullPointerException
...
Рейтинг: 0 / 0
Junit Test 4 ловим исключение
    #40131316
f9n6001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen,

Да, NullPointerException имел место быть, но все-таки дело было не в нем одном.
Более корректная строка для создания объекта exception выглядит так:


Код: java
1.
2.
3.
NotExistStorageException exception = assertThrows(NotExistStorageException.class, () -> {
ARRAY_STORAGE.get(randomUuid);
});
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Junit Test 4 ловим исключение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]