В чем проблема с моим JUnit тестом?

У меня есть такой тест:

@RunWith(MockitoJUnitRunner.class)
public class ColumnsTypesProcessorTest {

@Mock
private List<RowStatisticProcessor> rowProcessorList;
@Mock
private List<CellStatisticProcessor> cellProcessorList;

@InjectMocks
private MetaDataComputer metaDataComputer = new MetaDataComputer();

private MetaDataReader metaDataReader;
private String file;
private String outputFile;

@Before
public void init() {
    this.metaDataReader = new MetaDataReader();
}

@Test
public void integerType__shouldOk() throws IOException {
    this.file = "src/test/resources/integer-test.csv";
    this.outputFile = "src/test/resources/output-integer-test.json";

    when(metaDataComputer.inferMetadataForDataFrame(file)).thenReturn(setMetadata(outputFile));
}

Но он кидает NPE из-за того, что rowProcessorList и cellProcessorList не мокаются, в чем проблема?


Ответы (2 шт):

Автор решения: Sergei Buvaka

Вам необходимо в методе @Before инициализировать моем

MockitoAnnotations.initMocks(this);
→ Ссылка
Автор решения: kaylil_01

Мокито не умеет мокать листы. Чтобы решить проблему, замокал объекты типа листов и добавил их в лист в конструкторе.

→ Ссылка