TGViewer
Prefire iOS Prefire iOS @prefire_ios · 980 subscribers
Post #99 1.04K
🧪 UI-тесты без боли — SwiftLens

Все мы знаем, какие XCUITest бывают:
медленные, флакающие, симуляторы жрут всё.
⠀
Автор SwiftLens придумал, как тестировать SwiftUI,
как будто это unit-тест. И это 🔥

Что даёт SwiftLens:
✅ Видит иерархию SwiftUI через PreferenceKey
⚡️ Тесты за 0.06 сек (vs 15 сек в XCUITest)
🧼 Меньше кода — .lensTrack(id:) и поехали
🔁 Работает с async: ждёт views, проверяет текст, нажимает кнопки

Пример — было и стало:

❌ XCUITest:

app.buttons["saveButton"].tap()
XCTAssert(app.staticTexts["successToast"].exists)


✅ SwiftLens:

try await interactor.tap("saveButton")
try await observer.waitForVisible("successToast")



Где особенно полезно:
🚀 На CI — быстро и стабильно
🛠 В pet-проектах — когда важен фидбек
📱 В любом SwiftUI-приложении — без боли

Минусы :
⚠️ Нужно вставлять .lensTrack, .lensSheet
⚠️ PreferenceKey не работает из .sheet — нужен обход
⚠️ Только SwiftUI
⚠️ Авторский проект, не стандарт Apple — но уже юзабельный

Хочешь попробовать?
1️⃣ Добавь .lensTrack(id: "myView")
2️⃣ Подключи LensObserver и LensInteractor
3️⃣ Запусти — и кайфуй от скорости

🎥 Видео
💾 GitHub
  • 👍 8
  • 🔥 4
More from @prefire_ios
  1. Sep 16, 2026☺️ Prefire в требованиях к вакансиям Где-то месяц назад поставил ежедневную задачу на Chat…
  2. Sep 5, 2026🧭 Podlodka iOS Crew: разработка с AI С 14 по 18 сентября пройдет новый сезон Podlodka iOS…
  3. Aug 26, 2026Кажется, мой кот начал жить своей жизнью. Сначала друзья просто закинули Mewmori в несколь…
  4. Aug 18, 2026Нахождение текста котом Mewmori в уникальных приложениях Что бы кот видел, я снимаю скринш…
  5. Aug 17, 2026Начал готовить к релизу ScreenCat - 🐈 Mewmori - Переименовал проект в Mewmori (типо memor…
  6. Aug 5, 2026Сделал систему скинов для котиков 🐈 В ScreenCat уже много скинов, и я прям сильно устал р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →