Другая точка зрения. Это здесь:
@InjectMocks
private TestMe testMeMock;
и это:
when(testMeMock.returnPlaces()).thenReturn(listPlaces);
просто не имеет смысла вместе.
Аннотация @InjectMocks предназначена для создания экземпляра тестируемого вами класса , который "заполняется" другими имитаторами, созданными вами с помощью аннотации @Mock. Но затем вы используете этот тестируемый экземпляр класса , как будто это было фиктивно (переходя на when(testMeMock.foo())
).
Вы должны начать с шага назад и прояснить для себя, что именно вы намереваетесь сделать. Вероятно, частичная насмешка, потому что вы хотите проверить свой метод init()
, но вы также намереваетесь контролировать, что делают другие методы в тестируемом классе.
Наконец, вы также можете отступить и пересмотреть свой общий дизайн. Иметь открытые методы, возвращающие списки, которые также используются в открытом методе, который выполняет init, что тоже просто звучит неправильно.