В чем проблема с моим 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
→ Ссылка
Мокито не умеет мокать листы. Чтобы решить проблему, замокал объекты типа листов и добавил их в лист в конструкторе.