mockito ArrayList <Строка> проблема

У меня есть метод, который я пробую к модульному тесту. Этот метод берет параметр в качестве ArrayList и делает вещи с ним. Насмешка, которую я пытаюсь определить:

ArrayList<String> mocked = mock(ArrayList.class);

который дает преобразование непроверенное [непроверенное]" предупреждение.

ArrayList<String> mocked = mock(ArrayList<String>.class);

дает мне ошибку.

Кто-либо хочет просветить меня относительно того, что я делаю неправильно?

29
задан b.roth 27 May 2010 в 15:25
поделиться

1 ответ

ArrayList .class - это конструкция, не поддерживаемая компилятором Java.

Для первой попытки вы должны сделать следующее:

@SuppressWarnings( "unchecked" )
ArrayList<String> mocked = mock(ArrayList.class);

Это происходит потому, что метод mock может возвращать только необработанный тип. В общем случае использовать необработанные типы нецелесообразно, поскольку это может привести к ошибкам времени выполнения. В вашем случае это прекрасно, потому что вы знаете, что mocked в любом случае не является НАСТОЯЩИМ ArrayList .

Просто общий совет по аннотации @SuppressWarnings ("unchecked") . Старайтесь держать его как можно ближе к источнику проблемы. Например, вы можете указать его только для объявления переменной или запретить его для всего метода. В общем, подавляйте это для переменной, потому что в противном случае широкая аннотация метода может подавить другие проблемы в вашей функции.

25
ответ дан 28 November 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: