У меня есть этот сервис (все в котлине):
@Service
class MyService {
fun getSomeString(): String = "test"
}
И этот интеграционный тестовый класс:
@RunWith(SpringRunner::class)
@SpringBootTest
@EmbeddedKafka // used on some kafka tests
class BasicTests {
и метод:
@Test
fun `test method count`() {
// here I have a kafka producer sending a message to a topic that ends up
// calling myService.getSomeString via @KafkaListener from other services
verify(someObjectRelatedToMyService, atLeast(1)).getSome()
}
Вместо someObjectRelatedToMyService
Я пытался использовать
@Autowired
lateinit var myService: MyService
Но потом я получил Argument passed to verify() is of type MyService and is not a mock!
Но когда я использую
@Mock
lateinit var myMock: MyService
Я получаю Actually, there were zero interactions with this mock.
И на самом деле, для меня это имеет смысл, поскольку мой макет не был вызван, но мой реальный сервис в приложении был.
Можно ли считать вызовы методов от моего реального объекта?