Смежный метод переносит исключение в коллекцию, а не создает исключение - PullRequest
0 голосов
/ 01 июня 2018

У меня тест с использованием jmockit's result = new Object[] {...}, который не проходит.Версия jmockit - 1.34.Тест должен выдать исключение, но вместо этого jmockit возвращает коллекцию с исключением в нем.Вот пример:

public class ServiceTest {
    public class Service {
        private Set<String> saved;

        public Service() {
            saved = new HashSet<>();
            saved.add("one");
            saved.add("two");
        }

        public Set<String> readAll() {
            return Collections.unmodifiableSet(saved);
        }
    }

    @Test(expected = RuntimeException.class)
    public void testReadAll(@Mocked Service service) {
        new Expectations() {{
                service.readAll(); times = 1; result = new RuntimeException();
        }};

        service.readAll();
    }

    @Test
    public void testReadAllWithArray(@Mocked Service service) {
        new Expectations() {{
                service.readAll(); times = 1; result = new Object[]{new RuntimeException()};
        }};

        Set set = service.readAll();
        assertThat(set.iterator().next(), instanceOf(RuntimeException.class));
    }
}

testReadAllWithArray показывает, что объект, возвращаемый readAll, является набором с исключением в нем.

Это ошибка или есть обходной путь

1 Ответ

0 голосов
/ 06 июня 2018

Обновление с jmockit 1.34 до последней версии.

...