Метод, который вы вызываете внутри intercept
, отличается от того, который вы определили выше. Вот почему это не исключение. Когда поведение не определено, фиктивный объект просто возвращает null
. Приведенный ниже тест должен пройти успешно.
test("test with Exception"){
val generatorService = mock[GeneratorService]
val entityProviderRequest = new EntityProviderRequest(entity)
when(generatorService.generateElements(entityProviderRequest, "abc"))
.thenThrow(new RuntimeException)
intercept[Exception]{
generatorService.generateElements(entityProviderRequest, "abc")
}
}
Обновление
Если вы хотите использовать реальную реализацию метода, но высмеивать другие, вы можете добиться этого с помощью when(..).thenCallRealMethod()
:
test("test with Exception"){
val generatorService = mock[GeneratorService]
val entityProviderRequest = new EntityProviderRequest(entity)
when(generatorService.generateElements(entityProviderRequest, "abc"))
.thenCallRealMethod()
when(generatorService.generateVertex(entityProviderRequest.entity, "abc"))
.thenThrow(new RuntimeException)
intercept[Exception]{
generatorService.generateElements(entityProviderRequest, "abc")
}
}