ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

Unit Tests, Mock HTTP & UI Tests in Kotlin Compose Desktop | Lesson 15

Автор: Taught by Celeste AI - AI Coding Coach

Загружено: 2026-02-23

Просмотров: 10

Описание: Learn how to test Kotlin Compose Desktop applications! We refactor a weather app for testability with
injectable HttpClient, add pure functions, and write 16 tests covering unit tests, Ktor MockEngine API
mocking, and Compose UI tests with createComposeRule.

What You'll Learn:
Setting up test dependencies: compose.desktop.uiTestJUnit4, ktor-client-mock, coroutines-test
Refactoring for testability: injectable HttpClient parameter instead of global client
Pure functions for easy unit testing (weatherDescription WMO code mapping)
@Serializable data class deserialization tests with kotlinx-serialization
Ktor MockEngine for controlled HTTP responses without hitting real APIs
Compose UI testing with createComposeRule() and JUnit4
onNodeWithTag / onNodeWithText for querying the semantic tree
Modifier.testTag("id") for stable UI test selectors
assertTextEquals, assertTextContains, assertExists for UI assertions
waitUntil for async operations in UI tests
Testing error states with mock server errors

Timestamps:
0:00 - Introduction
0:15 - Preview: 16 Tests Across 3 Files
0:45 - Project Setup (Gradle with Test Dependencies)
2:48 - Weather Models & API (Refactored for Testability)
5:03 - App Content & Main (with testTag Modifiers)
9:27 - Unit Tests (WeatherModelsTest + WeatherApiTest)
14:18 - UI Tests (AppContentTest with Compose Rules)
17:51 - Run Tests (Compile + ./gradlew test + Results)
19:33 - Live Demo: Weather App in Action
20:13 - Recap & Key Takeaways
21:13 - Thanks for Watching

Key Takeaways:
1. Test Setup — compose.desktop.uiTestJUnit4 + kotlin("test") for desktop UI and unit tests
2. Unit Tests — Test pure functions and serialization with @Test and assertEquals
3. Mock HTTP — Ktor MockEngine replaces real API calls with controlled responses
4. UI Tests — createComposeRule() + onNodeWithTag for composable assertions
5. Test Tags — Modifier.testTag("id") gives stable selectors for UI test queries

Previous Lesson:
Lesson 14: Tables & Data Grids — Data Explorer
   / .  .

Next Lesson:
Lesson 16: Packaging & Distribution (coming soon)

Tech Stack:
Kotlin 2.1, Compose Multiplatform 1.7.3, Material3
Ktor 3.0.3, Ktor MockEngine, kotlinx-serialization 1.7.3
JUnit4, kotlinx-coroutines-test 1.9.0
Gradle 8.10, JVM 17+

Source Code: https://github.com/GoCelesteAI/kotlin...

Taught by CelesteAI

If you found this helpful, please like and subscribe for more Kotlin Desktop tutorials!

#kotlin #compose #desktop #material3 #testing #junit #mockengine #ktor #unittests #uitests #tutorial
#programming

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
Unit Tests, Mock HTTP & UI Tests in Kotlin Compose Desktop | Lesson 15

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

Koin DI, Repository Pattern & ViewModel in Kotlin Compose Desktop | Lesson 16

Koin DI, Repository Pattern & ViewModel in Kotlin Compose Desktop | Lesson 16

Docker за 20 минут

Docker за 20 минут

Task4 Project3 Scheduled Job Task

Task4 Project3 Scheduled Job Task

Qwen3-coder-next -- НОВЫЙ ТОП ИИ ЛОКАЛЬНО, БЕСПЛАТНО И БЕЗЛИМИТНО! CLI, сравнение кодинг агентов

Qwen3-coder-next -- НОВЫЙ ТОП ИИ ЛОКАЛЬНО, БЕСПЛАТНО И БЕЗЛИМИТНО! CLI, сравнение кодинг агентов

Самоудар по яйцам ЧУВИ | Фейк процессор в Chuwi CoreBook X

Самоудар по яйцам ЧУВИ | Фейк процессор в Chuwi CoreBook X

Build a Pomodoro Timer & Package It as a DMG — Compose Desktop | Kotlin Desktop Lesson 20

Build a Pomodoro Timer & Package It as a DMG — Compose Desktop | Kotlin Desktop Lesson 20

Как Ubuntu Предала Linux - Вся Правда о Взлёте и Падении Canonical

Как Ubuntu Предала Linux - Вся Правда о Взлёте и Падении Canonical

Купил автомобиль жене - Попал на 1.800.000р!!!

Купил автомобиль жене - Попал на 1.800.000р!!!

1С: ИИ пишет весь код без человека: магия нейросетей

1С: ИИ пишет весь код без человека: магия нейросетей

Структура файлов и каталогов в Linux

Структура файлов и каталогов в Linux

Git Aliases, Hooks & Statistics from the Terminal — Zsh #29

Git Aliases, Hooks & Statistics from the Terminal — Zsh #29

Фильм Алексея Семихатова «ГРАВИТАЦИЯ»

Фильм Алексея Семихатова «ГРАВИТАЦИЯ»

Hysteria2 — рабочий VPN при «блокировках» VLESS

Hysteria2 — рабочий VPN при «блокировках» VLESS

Промпты УМЕРЛИ. Вот что пришло на замену

Промпты УМЕРЛИ. Вот что пришло на замену

Как вредит смартфону беспроводная зарядка? + НОВОСТИ!

Как вредит смартфону беспроводная зарядка? + НОВОСТИ!

ЦЕНА ОШИБКИ: 13 Инженерных Катастроф, Которые Потрясли Мир!

ЦЕНА ОШИБКИ: 13 Инженерных Катастроф, Которые Потрясли Мир!

Демушкин про экономическую катастрофу, кризис в МВД и войну в Иране🎙 Честное слово с Дёмушкиным

Демушкин про экономическую катастрофу, кризис в МВД и войну в Иране🎙 Честное слово с Дёмушкиным

Идеальная пенсия в США? Больше такой не будет

Идеальная пенсия в США? Больше такой не будет

От пляски на костях Навального до СИЗО - путь z-патриота

От пляски на костях Навального до СИЗО - путь z-патриота

Gemini Embedding 2 — КОНЕЦ Всему RAG?

Gemini Embedding 2 — КОНЕЦ Всему RAG?

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]