SW Swift  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  ·  👥 1 прошёл

Тестирование Swift

Профессиональный тест по теме «Тестирование Swift»: сложные фрагменты кода, архитектурные компромиссы, диагностика и надёжность. Вопросы требуют не только узнать конструкцию, но и проследить выполнение, найти причину дефекта, выбрать исправление и оценить пограничный сценарий. Языковые примеры рассчитаны на Swift 6; задания с Apple SDK рассматриваются в контексте современных платформенных контрактов.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. В тесте 30 вопросов, на работу отведено 85 минут. В каждом задании верен только один вариант. Часть фрагментов намеренно содержит ошибку: определяйте её по коду, а не по внешнему виду ответа. После завершения откроются общий результат, 6 тематических шкал и подробные объяснения.
Вопрос 1 из 30
В этом примере важна одна точная деталь механизма «Тесты XCTest». Что действительно произойдёт? Сосредоточьтесь на следующем: обнаружение и ясность модульный теста.
SwiftТесты XCTest · фрагмент для разбора
import XCTest
final class MathTests28: XCTestCase {
    func testSum() { XCTAssertEqual(2 + 3, 5) }
}
Вопрос 2 из 30
Какой итог даст показанный фрагмент, если применять правила Swift буквально, а не угадывать намерение автора? Не упускайте из виду следующее: корректное ожидание асинхронной работы.
SwiftАсинхронные тесты · фрагмент для разбора
import XCTest
func eventually16() async -> Int { 7 }
final class AsyncTests28: XCTestCase {
    func testLoad() async throws {
        let value = await eventually16()
        XCTAssertEqual(value, 7)
    }
}
Вопрос 3 из 30
Где окажется состояние программы после выполнения всех показанных операций? Сосредоточьтесь на следующем: проектирование тестируемых зависимостей.
SwiftПодмены · фрагмент для разбора
import Foundation

protocol Clock28 { func now() -> Date }
struct FixedClock28: Clock28 {
    let date: Date
    func now() -> Date { date }
}
Вопрос 4 из 30
Разберите строки в порядке выполнения. Какой результат получит фрагмент, посвящённый теме «Проверки интерфейса»? Не упускайте из виду следующее: стабильный поиск элементов и граница процесса проверки интерфейса.
SwiftПроверки интерфейса · фрагмент для разбора
import XCTest
final class AppUITests28: XCTestCase {
    func testLogin() {
        let app = XCUIApplication(); app.launchArguments = ["-ui-testing"]; app.launch()
        app.textFields["email"].tap()
    }
}
Вопрос 5 из 30
Проследите типы, изменения состояния и порядок вызовов. Какое описание результата совпадает с кодом? Здесь оценивается современный Swift Testing и воспроизводимость.
SwiftТестирование и диагностика · фрагмент для разбора
import Testing
@Test(arguments: [0, 1, 2]) func nonnegative28(_ value: Int) { #expect(value >= 0) }
Вопрос 6 из 30
Какой итог даст показанный фрагмент, если применять правила Swift буквально, а не угадывать намерение автора? Не упускайте из виду следующее: жизненный цикл SUT и независимость тестовых случаев.
SwiftПамять и архитектура приложения · фрагмент для разбора
final class Sut28 { var onEvent: (() -> Void)? }
weak var probe28: Sut28?
do { let sut = Sut28(); probe28 = sut }
Вопрос 7 из 30
Какой диагноз согласуется и с исходным кодом, и с правилами Swift? Проверяется обнаружение и ясность модульный теста.
SwiftТесты XCTest · фрагмент для разбора
import XCTest
final class BadTests28: XCTestCase {
    func sumTest() { XCTAssertTrue(false) }
}
Вопрос 8 из 30
Почему этот код не выполняет заявленный контракт? Не упускайте из виду следующее: корректное ожидание асинхронной работы.
SwiftАсинхронные тесты · фрагмент для разбора
import XCTest
final class Flaky28: XCTestCase {
    func testLater() {
        var done = false
        Task { done = true }
        XCTAssertTrue(done)
    }
}
Вопрос 9 из 30
Почему этот код не выполняет заявленный контракт? Не упускайте из виду следующее: проектирование тестируемых зависимостей.
SwiftПодмены · фрагмент для разбора
@MainActor
final class Service28 {
    static let shared = Service28()
    func load() -> Int { 1 }
}
Вопрос 10 из 30
Разработчик видит симптом, но ищет первопричину. Какое объяснение выдерживает проверку кодом? Не упускайте из виду следующее: стабильный поиск элементов и граница процесса проверки интерфейса.
SwiftПроверки интерфейса · фрагмент для разбора
import XCTest
let button28 = XCUIApplication().buttons["Войти"]
Вопрос 11 из 30
Разработчик видит симптом, но ищет первопричину. Какое объяснение выдерживает проверку кодом? Проверяется современный Swift Testing и воспроизводимость.
SwiftТестирование и диагностика · фрагмент для разбора
import Testing
@Test func random28() { #expect(Int.random(in: 0...1) == 1) }
Вопрос 12 из 30
Какой вывод о типах, владении или порядке выполнения следует из показанного дефекта? Проверяется жизненный цикл SUT и независимость тестовых случаев.
SwiftПамять и архитектура приложения · фрагмент для разбора
import XCTest
final class Sut28 {}
final class TestsLeak28: XCTestCase {
    var sut: Sut28!
    override func setUp() { sut = Sut28() }
}
Вопрос 13 из 30
Что следует изменить, чтобы исправить первопричину, а не подогнать ожидаемый результат? Проверяется обнаружение и ясность модульный теста.
SwiftТесты XCTest · фрагмент для разбора
import XCTest
final class BadTests28: XCTestCase {
    func sumTest() { XCTAssertTrue(false) }
}
Вопрос 14 из 30
Какая правка решает проблему на том уровне, где она возникла? Здесь оценивается корректное ожидание асинхронной работы.
SwiftАсинхронные тесты · фрагмент для разбора
import XCTest
final class Flaky28: XCTestCase {
    func testLater() {
        var done = false
        Task { done = true }
        XCTAssertTrue(done)
    }
}
Вопрос 15 из 30
Выберите правку, после которой дефект исчезает не только в удачном примере. Проверяется проектирование тестируемых зависимостей.
SwiftПодмены · фрагмент для разбора
@MainActor
final class Service28 {
    static let shared = Service28()
    func load() -> Int { 1 }
}
Вопрос 16 из 30
Какой вариант ремонта вы бы приняли после содержательной проверки кода? Сосредоточьтесь на следующем: стабильный поиск элементов и граница процесса проверки интерфейса.
SwiftПроверки интерфейса · фрагмент для разбора
import XCTest
let button28 = XCUIApplication().buttons["Войти"]
Вопрос 17 из 30
Какая правка решает проблему на том уровне, где она возникла? Важно учесть: современный Swift Testing и воспроизводимость.
SwiftТестирование и диагностика · фрагмент для разбора
import Testing
@Test func random28() { #expect(Int.random(in: 0...1) == 1) }
Вопрос 18 из 30
Как восстановить заявленный контракт с наименьшим числом новых скрытых предположений? Сосредоточьтесь на следующем: жизненный цикл SUT и независимость тестовых случаев.
SwiftПамять и архитектура приложения · фрагмент для разбора
import XCTest
final class Sut28 {}
final class TestsLeak28: XCTestCase {
    var sut: Sut28!
    override func setUp() { sut = Sut28() }
}
Вопрос 19 из 30
Какой пограничный случай способен изменить вывод, хотя синтаксис останется почти тем же? Сосредоточьтесь на следующем: обнаружение и ясность модульный теста.
Вопрос 20 из 30
Где заканчивается гарантия, продемонстрированная в обычном примере «Асинхронные тесты»? Важно учесть: корректное ожидание асинхронной работы.
Вопрос 21 из 30
Какой пограничный случай способен изменить вывод, хотя синтаксис останется почти тем же? Проверяется проектирование тестируемых зависимостей.
Вопрос 22 из 30
Какой контрпример показывает, что рабочий сценарий нельзя безусловно переносить на все похожие случаи? Здесь оценивается стабильный поиск элементов и граница процесса проверки интерфейса.
Вопрос 23 из 30
Какое ограничение темы «Воспроизводимые тесты Swift» обязательно проверить отдельным граничным тестом? Сосредоточьтесь на следующем: современный Swift Testing и воспроизводимость.
Вопрос 24 из 30
Какое условие отличает надёжное обобщение от случайно удачного запуска? Сосредоточьтесь на следующем: жизненный цикл SUT и независимость тестовых случаев.
Вопрос 25 из 30
Какой принцип важнее локальной красоты синтаксиса в рабочем приложении? Важно учесть: обнаружение и ясность модульный теста.
Вопрос 26 из 30
Какой принцип важнее локальной красоты синтаксиса в рабочем приложении? Не упускайте из виду следующее: корректное ожидание асинхронной работы.
Вопрос 27 из 30
Какой подход делает неправильное использование заметным раньше? Важно учесть: проектирование тестируемых зависимостей.
Вопрос 28 из 30
Какое замечание на проверке кода поможет предотвратить повторение такого дефекта? Сосредоточьтесь на следующем: стабильный поиск элементов и граница процесса проверки интерфейса.
Вопрос 29 из 30
Какой подход делает неправильное использование заметным раньше? Проверяется современный Swift Testing и воспроизводимость.
Вопрос 30 из 30
Команда выбирает не просто рабочую строку, а устойчивое устройство решения. Какой подход сильнее? Проверяется жизненный цикл SUT и независимость тестовых случаев.

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу