Инъекционная структура (Google Guice) не запускается в тестах, если ваши экземпляры не будут внедрены, и это то, что вы в любом случае хотите.
В этом случае, если вы хотите протестировать службу NewsService, вы, вероятно, захотите внедрить специальный DAO, где вы управляете выходами, чтобы вы могли проверить, как работает NewsService, например, при отсутствии новостей.
Просто создайте службу NewsService в своем тесте с помощью тестового DAO (или вы можете использовать mockito).
class NewsServiceTest extends WordSpec with MustMatchers {
class EmptyTestDAO extends NewsDAO {
def getNews(): List[News] = List.empty
}
"News controller" must {
"return an empty list when there is no news" in {
val service = new NewsService(new EmptyTestDAO)
service.findAll() shouldBe List.empty
}
}
}
Если вы хотите использовать mockito вместо написания пользовательских DAO, вы должны сделать что-то вроде этого
val dao = Mockito.mock(classOf[NewsDAO])
Mockito.when(dao.getNews()).thenReturn(List.empty[News])
val service = new NewsService(dao)
Существует синтаксический сахар для скалы с MockitoSugar