Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез
Всем привет!
Столкнулся со следующей проблемой: пытаюсь протестировать контроллер с помощью standaloneSetup конфигурации MockMvc, но для обработки запроса, необходимо заинжектить объект Authentication в метод контроллера. Для этого мокаю SecurityContext. Но при всякой попытке запустить тест получаю ошибку. Сразу скажу, по части тестирования я мало чего понимаю, но судя по всему, запрос должен обрабатываться корректно, а объект Authentication спокойно доставаться из SecurityContext. Если кто подскажет, как решить эту проблему, буду сильно благодарен. Скрины кода и ошибки прилагаю.
так что в норм тимах не вижу вариантов, как бы это протекло в мэйн
Читать полностью…ну кто-то слил свою правку, ты писал новый код к этому полю и ребейзнулся.
тут только тесты и культура ревью
сборка будет зеленой. а если тестов на это место нет - поймаем только в рантайм
Читать полностью…который закрывает ишью на гитхабе, а у народа наллабл в кодгене
Читать полностью…как и маппер с рефлексией, там вообще неявно это делается
Читать полностью…ну вот свой маппер написать, я уже об этом говорил как раз
Читать полностью…object FilmFields {Читать полностью…
val ID = FILM.ID.nonNullable()
val NAME = FILM.NAME.nonNullable()
val LINK = FILM.LINK
val POSTER_LINK = FILM.POSTER_LINK
val STATE = FILM.STATE.nonNullable()
}
inline fun <T> Field<T>.nonNullable() = convertFrom { it!! }
собственно, это единственная задача жука, я бы и просто на строках все писал, если бы тайпсэйф был возможен
Читать полностью…упадет компиляция и тесты, править все придется в любом случае
Читать полностью…да даже неохота подсвечивать. утро вечера мудренее. порешаю завтра
Читать полностью…для эксперимента переписал у себя - идейка подсвечивает красным, а сборка работает и тесты зеленые😂
Читать полностью…хотя да, тот кто сделал правку должен был бы и маппинг поправить (если мы говорим о кастомном, как в моем случае FilmFields, наборе филдов)
Читать полностью…как только ты это в миграции поменял, ты автоматом поменяешь в конвертации поля
+ тесты
твой сценарий возможен либо в командах с низкой инженерной культурой, либо там, где не ты хозяин бд
ослабляет. код считает что по дефолту все nullable, мы точечно правим и зашиваем в код. какое-то поле меняется на not nullable, генеренный код не меняется, наш ручной маппинг тоже...
Читать полностью…но ведь не ослабляет, мы просто фиксим баг ленивца эдера
Читать полностью…меня только одно расстраивает в таком подходе, как и любом другом для обхода бага - оно ослабляет compile time проверки по сути
Читать полностью…А нельзя unchecked cast в одном месте, чтобы не писать кучу бойлер-плейта?
Читать полностью…+ дсл в имплементации репозитория связывает твой дата класс и структуру в бд, пропустить не выйдет
Читать полностью…а если структура в ~базе~ таблице поменялась, то это не скажется же если не апдейтить дата класс?