В чем разница между аннотациями @SpyBean
и @MockBean
в Mockito?
Я уже прошел JavaDoc, но не понял разницы. Если возможно, приведите пример, когда использовать MockBean и когда SpyBean.
В чем разница между аннотациями @SpyBean
и @MockBean
в Mockito?
Я уже прошел JavaDoc, но не понял разницы. Если возможно, приведите пример, когда использовать MockBean и когда SpyBean.
макет (неважно, говорим ли мы об обычных объектах или bean-компонентах) — это просто "пустая оболочка".
Этот фиктивный объект не имеет какого-либо отношения к основному производственному коду. Это объект, который выглядит как объект класса X. Но ни один из методов или полей, которые X имеет, "на самом деле" не существует в этой издевательской вещи.
В то время как шпион обертывает существующий объект вашего тестируемого класса. Значение: когда вы создаете шпиона, вы можете решить, должны ли вызовы метода, идущие к шпиону, быть "перехвачены" (тогда вы используете шпиона, как если бы это был макет); или быть «пропущенным» к реальному объекту, вокруг которого находится шпион.
См. здесь. некоторые конкретные примеры бобов. Или здесь...
очень важно отметить, что две аннотации, на которые вы ссылаетесь, исходят из Spring Boot, а не из Mockito (хотя эта Spring lib основана на Mockito)
смешивание тестовых фреймворков может дать запутанные и неточные результаты.