💡 Инструкция: Выберите один ответ из пяти. На тест отведено 70 минут; после ответа можно открыть объяснение.
Вопрос 1 из 25
Раздел «Жизненный цикл»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NET Visual Basic · WinForms: формы и элементы управления Копировать
Public Class MainForm
Private cancellation As CancellationTokenSource
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cancellation = New CancellationTokenSource()
Text = "Ready"
End Sub
Private Sub MainForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
cancellation?.Cancel()
cancellation?.Dispose()
End Sub
End Class
Жизненный цикл формы отделяет создание, загрузку, показ и закрытие; тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Жизненный цикл формы не отделяет создание, загрузку, показ и закрытие; тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Тяжёлую загрузку надёжнее запускать в конструкторе формы: к событию Load все зависимости уже должны быть готовы.
Достаточно обеспечить «тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей»; условие «Жизненный цикл формы отделяет создание, загрузку, показ и закрытие» можно отдельно не проверять.
Жизненный цикл формы отделяет создание, загрузку, показ и закрытие; тяжёлую работу можно бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Вопрос 2 из 25
Раздел «Жизненный цикл»: какой комментарий к изменению будет технически обоснован?
Visual Basic / VB.NET Visual Basic · WinForms: формы и элементы управления Копировать
Option Strict On
Namespace ReviewCase17_1
Public Class MainForm
Private cancellation As CancellationTokenSource
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cancellation = New CancellationTokenSource()
Text = "Ready"
End Sub
Private Sub MainForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
cancellation?.Cancel()
cancellation?.Dispose()
End Sub
End Class
End Namespace
Зафиксировать в ревью: жизненный цикл формы отделяет создание, загрузку, показ и закрытие; тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Зафиксировать в ревью: жизненный цикл формы отделяет создание, загрузку, показ и закрытие; тяжёлую работу можно бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Зафиксировать в ревью: тяжёлую загрузку надёжнее запускать в конструкторе формы: к событию Load все зависимости уже должны быть готовы.
Зафиксировать в ревью: жизненный цикл формы не отделяет создание, загрузку, показ и закрытие; тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Зафиксировать в ревью: достаточно обеспечить «тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей»; условие «Жизненный цикл формы отделяет создание, загрузку, показ и закрытие» можно отдельно не проверять.
Вопрос 3 из 25
Раздел «Жизненный цикл»: какой результат следует зафиксировать до запуска отрицательного сценария?
Visual Basic / VB.NET Visual Basic · WinForms: формы и элементы управления Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase17_1
Public Class MainForm
Private cancellation As CancellationTokenSource
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cancellation = New CancellationTokenSource()
Text = "Ready"
End Sub
Private Sub MainForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
cancellation?.Cancel()
cancellation?.Dispose()
End Sub
End Class
End Namespace
Закрепить тестом: жизненный цикл формы отделяет создание, загрузку, показ и закрытие; тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Закрепить тестом: достаточно обеспечить «тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей»; условие «Жизненный цикл формы отделяет создание, загрузку, показ и закрытие» можно отдельно не проверять.
Закрепить тестом: тяжёлую загрузку надёжнее запускать в конструкторе формы: к событию Load все зависимости уже должны быть готовы.
Закрепить тестом: жизненный цикл формы отделяет создание, загрузку, показ и закрытие; тяжёлую работу можно бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Закрепить тестом: жизненный цикл формы не отделяет создание, загрузку, показ и закрытие; тяжёлую работу нельзя бездумно запускать в конструкторе до готовности дескриптора и зависимостей.
Вопрос 21 из 25
Посмотрите на фрагмент по теме «Контроль состояния». Какое объяснение точнее всего связывает код с его поведением?
Visual Basic / VB.NET Visual Basic · WinForms: формы и элементы управления Копировать
Public Class MainForm
Private currentLoad As CancellationTokenSource
Private Async Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
currentLoad?.Cancel()
currentLoad = New CancellationTokenSource()
StatusLabel.Text = "Loading"
Try
Grid.DataSource = Await repository.SearchAsync(QueryBox.Text, currentLoad.Token)
StatusLabel.Text = "Ready"
Catch ex As OperationCanceledException
StatusLabel.Text = "Canceled"
End Try
End Sub
End Class
Контракт кода: достаточно выполнить одно из двух условий: «Состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ» или «кнопки и индикаторы возвращаются в согласованное состояние и при ошибке».
Контракт кода: состояние формы не должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы возвращаются в согласованное состояние и при ошибке.
Контракт кода: закрытие формы автоматически отменяет все запущенные задачи, а кнопки достаточно возвращать в исходное состояние только после успеха.
Контракт кода: состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы не возвращаются в согласованное состояние и при ошибке.
Контракт кода: состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы возвращаются в согласованное состояние и при ошибке.
Вопрос 22 из 25
Раздел «Контроль состояния»: какой вывод должен пережить рефакторинг этого фрагмента?
Visual Basic / VB.NET Visual Basic · WinForms: формы и элементы управления Копировать
Option Strict On
Namespace ReviewCase17_5
Public Class MainForm
Private currentLoad As CancellationTokenSource
Private Async Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
currentLoad?.Cancel()
currentLoad = New CancellationTokenSource()
StatusLabel.Text = "Loading"
Try
Grid.DataSource = Await repository.SearchAsync(QueryBox.Text, currentLoad.Token)
StatusLabel.Text = "Ready"
Catch reviewEx As OperationCanceledException
StatusLabel.Text = "Canceled"
End Try
End Sub
End Class
End Namespace
Проверить перед объединением: закрытие формы автоматически отменяет все запущенные задачи, а кнопки достаточно возвращать в исходное состояние только после успеха.
Проверить перед объединением: состояние формы не должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы возвращаются в согласованное состояние и при ошибке.
Проверить перед объединением: состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы не возвращаются в согласованное состояние и при ошибке.
Проверить перед объединением: достаточно выполнить одно из двух условий: «Состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ» или «кнопки и индикаторы возвращаются в согласованное состояние и при ошибке».
Проверить перед объединением: состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы возвращаются в согласованное состояние и при ошибке.
Вопрос 23 из 25
Раздел «Контроль состояния»: какое утверждение поможет отличить настоящий дефект от случайности тестовых данных?
Visual Basic / VB.NET Visual Basic · WinForms: формы и элементы управления Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase17_5
Public Class MainForm
Private currentLoad As CancellationTokenSource
Private Async Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
currentLoad?.Cancel()
currentLoad = New CancellationTokenSource()
StatusLabel.Text = "Loading"
Try
Grid.DataSource = Await repository.SearchAsync(QueryBox.Text, currentLoad.Token)
StatusLabel.Text = "Ready"
Catch edgeEx As OperationCanceledException
StatusLabel.Text = "Canceled"
End Try
End Sub
End Class
End Namespace
Зафиксировать ожидаемое поведение: состояние формы не должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы возвращаются в согласованное состояние и при ошибке.
Зафиксировать ожидаемое поведение: состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы не возвращаются в согласованное состояние и при ошибке.
Зафиксировать ожидаемое поведение: закрытие формы автоматически отменяет все запущенные задачи, а кнопки достаточно возвращать в исходное состояние только после успеха.
Зафиксировать ожидаемое поведение: достаточно выполнить одно из двух условий: «Состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ» или «кнопки и индикаторы возвращаются в согласованное состояние и при ошибке».
Зафиксировать ожидаемое поведение: состояние формы должно переживать повторные клики, отмену, закрытие и поздний ответ; кнопки и индикаторы возвращаются в согласованное состояние и при ошибке.