169 похожих чатов

В проекте на спринге понадобилось подредачить тесты, и столкнулся с

интересной проблемой

делаю тест маппера мапстракта
если делать с контекстом спринга и MockBean, то падают все остальные тесты, которые эти же бины автовайрят и не ждут там моков
и DirtiesContext не помогает

попытался сделать на голом мокито, через Mock и InjectMocks с MockitoExtension
начали падать другие тесты с моками, никак не связанные с тем, что редактирую, по ошибке несоответствия аргументов в стабе

в чем может быть проблема? Со спрингом еще понятно, но почему с мокито другие тест классы затрагиваются?

7 ответов

37 просмотров
Александр-Ушаков Автор вопроса

@Baneslayer55 @bukkaa может вы подскажете

Александр-Ушаков Автор вопроса

попробовал со SpyBean, чтобы на другие классы не влияло все равно те же самые тесты падают)

Александр Ушаков
попробовал со SpyBean, чтобы на другие классы не в...

Spy/MockBean все равно на другие классы влиять будут. Если у тебя контекст, кешируемый, в одном месте инициализируется, то темболее. Почему Mock/InjectMocks попадали с несоответствием аргументов, не очень понял описание проблемы. inline mockmaker?

Daniiλ Shreyder
Spy/MockBean все равно на другие классы влиять буд...

вообще, не очень понимаю value мокать мапперы, если можно красивенько взять @Spy Mapper mapper = new MapperImpl(); но это на вкус и цвет.

Александр-Ушаков Автор вопроса
Daniiλ Shreyder
Spy/MockBean все равно на другие классы влиять буд...

я думал, что при наличии DirtiesContext влияния на другие классы не будет. Но нет с голым мокито суть в том, что при его использовании (MockitoExtension + Mock + InjectMocks) начинают падать другие классы с тестами. При этом, если в моем классе этого нет, то не падают. То есть, как в случае с MockBean и спринговым контекстом, только ошибка другая и падают другие классы мокито апгрейдить нельзя, версия 4.0.0

Тестируй значит сам маппер, а не того, кто его использует

Александр-Ушаков Автор вопроса
Daniiλ Shreyder
Тестируй значит сам маппер, а не того, кто его исп...

есть тест маппера. Самого маппера. Надо протестить метод AfterMapping, в котором вызов сервиса, который идет в сеть. Это надо замокать пробовал три варианта 1. SpringBootTest + DirtiesContext + MockBean + Autowired. Маппер автовайрится, его зависимости помечены как мокбины. Ошибка в 78 других файлов тестов. Ошибка в основном InvalidDataAccessResourceUsage 2. SpringBootTest + DirtiesContext + SpyBean + Autowired. Маппер автовайрится, его зависимости помечены как спайбины. Ошибка в 78 других файлов тестов (тех же, что в п1). Ошибка в основном InvalidDataAccessResourceUsage 3. Голый мокито тест, MockitoExtension + Mock + InjectMocs. Маппер помечен инжектмокс, его зависимости как моки. Падает 6 тестов в других файлах. Ошибка в основном про несоответствие аргументов стаббинга в них в их моках при этом, если не тестировать этот метод, то есть убрать и мокбины, и спайбины, и голые моки, то есть не идти ни по одному из вышеописанных путей, то другие тесты не падают. Вообще. То есть ошибок в них нет, именно описанное выше ломает их (другие файлы)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта