> Как реализовать unit test для функции getValue (iOS, Swift)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Revolut
Стек: iOS, Swift
> Пример ответа
Для тестирования функции getValue в iOS-проекте на Swift используем фреймворк XCTest. Предположим, функция возвращает значение по ключу из словаря:
SWIFTfunc getValue(for key: String, from dict: [String: Any]) -> Any? {return dict[key]}
Пример unit-теста:
SWIFTimport XCTestclass DictionaryTests: XCTestCase {func testGetValueWithExistingKey() {let dict = ["name": "Alice", "age": 30]let result = getValue(for: "name", from: dict)XCTAssertEqual(result as? String, "Alice")}func testGetValueWithMissingKey() {let dict = ["name": "Alice"]let result = getValue(for: "age", from: dict)XCTAssertNil(result)}func testGetValueWithEmptyDictionary() {let dict: [String: Any] = [:]let result = getValue(for: "key", from: dict)XCTAssertNil(result)}}
Ключевые моменты:
- Тестируем граничные случаи: существующий ключ, отсутствующий ключ, пустой словарь.
- Используем
XCTAssertEqualдля проверки значений иXCTAssertNilдля nil. - Для асинхронных версий
getValueприменяемXCTestExpectation. - При работе с замыканиями или Result типами добавляем тесты на success и failure.
> Похожие задачи по mobile
К какому типу типизации относится Swift: динамической или статической?
Уровень: seniorКатегория: Технические вопросы
Компания: Eltex
Стек: Swift, iOS
Какой протокол нужно реализовать для сохранения файла в iOS?
Уровень: seniorКатегория: Технические вопросы
Компания: Eltex
Стек: Swift, iOS
Почему при взятии подмассива массива возвращается ArraySlice, а при взятии подстроки из String возвращается Substring
Уровень: seniorКатегория: Технические вопросы
Компания: Яндекс
Стек: Swift, iOS
Можно ли объединить массивы через reduce
Уровень: seniorКатегория: Технические вопросы
Компания: Яндекс
Стек: Swift, iOS
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью