> Как реализовать unit test для функции getValue (iOS, Swift)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Revolut

Стек: iOS, Swift

> Пример ответа

Для тестирования функции getValue в iOS-проекте на Swift используем фреймворк XCTest. Предположим, функция возвращает значение по ключу из словаря:

SWIFT
func getValue(for key: String, from dict: [String: Any]) -> Any? {
return dict[key]
}

Пример unit-теста:

SWIFT
import XCTest
class 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.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью