testing-aqa junior
ArgumentCaptor — зачем нужен?
Ответ
Захват аргумента, переданного в замоканный метод. verify(service).send(captor.capture()); assertThat(captor.getValue().getEmail()).isEqualTo("test@mts.ru"). Для AQA: проверить, что в мок реально передали ожидаемые значения полей — captor захватывает входной аргумент, а конкретные поля проверяются явными assert'ами.
Разбор: ArgumentCaptor нужен, чтобы захватить аргумент, реально переданный в замоканный метод, и затем проверить его конкретные значения (captor.capture() в verify, потом captor.getValue()). Ловушки: captor не подменяет аргументы (нет setValue), не перехватывает возвращаемое значение (getReturn не существует) и не является матчером — он захватывает входной аргумент и требует явной проверки полей через assert.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.