VB Visual Basic  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Тестирование VB.NET-кода

Тест по теме «Тестирование VB.NET-кода» состоит из 25 вопросов: нужно читать код, сравнивать близкие решения, находить границы применимости правил и разбирать последствия ошибок. Заданий с кодом — 15; после каждого ответа открывается объяснение.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 70 минут; после ответа можно открыть объяснение.
Вопрос 1 из 25
Раздел «Средства MSTest и xUnit»: какое утверждение позволяет предсказать поведение фрагмента по правилам Visual Basic и .NET?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
<TestClass>
Public Class CalculatorTests
    <TestMethod>
    Public Sub AddsTwoNumbers()
        Assert.AreEqual(5, Calculator.Add(2, 3))
    End Sub
End Class
Вопрос 2 из 25
Раздел «Средства MSTest и xUnit»: что должно остаться явным после переработки участка с TestClass?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Strict On
Namespace ReviewCase20_1
    <TestClass>
    Public Class CalculatorTests
        <TestMethod>
        Public Sub AddsTwoNumbers()
            Assert.AreEqual(6, Calculator.Add(3, 4))
        End Sub
    End Class
End Namespace
Вопрос 3 из 25
Раздел «Средства MSTest и xUnit»: что изменится первым при нарушении ключевого допущения этого фрагмента?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Explicit On
Option Infer On
Namespace BoundaryCase20_1
    <TestClass>
    Public Class CalculatorTests
        <TestMethod>
        Public Sub AddsTwoNumbers()
            Assert.AreEqual(4, Calculator.Add(1, 2))
        End Sub
    End Class
End Namespace
Вопрос 4 из 25
Раздел «Средства MSTest и xUnit»: что стоит закрепить в коде и тестах, а не прикрывать общим обработчиком?
Вопрос 5 из 25
Раздел «Средства MSTest и xUnit»: какое обобщение не зависит от случайных деталей показанного примера?
Вопрос 6 из 25
Раздел «Структура Arrange — Act — Assert»: в примере с TestClass важна не форма записи, а поведение. Какое утверждение его описывает?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
<TestClass>
Public Class PriceTests
    <TestMethod>
    Public Sub AppliesDiscountToEligibleOrder()
        Dim order = New Order(total:=100D, isEligible:=True)
        Dim actual = PriceService.Calculate(order)
        Assert.AreEqual(90D, actual)
    End Sub
End Class
Вопрос 7 из 25
Раздел «Структура Arrange — Act — Assert»: что следует зафиксировать в ревью, чтобы ошибка не переехала из сборки в выполнение?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Strict On
Namespace ReviewCase20_2
    <TestClass>
    Public Class PriceTests
        <TestMethod>
        Public Sub AppliesDiscountToEligibleOrder()
            Dim reviewOrder = New Order(total:=100D, isEligible:=True)
            Dim reviewActual = PriceService.Calculate(reviewOrder)
            Assert.AreEqual(90D, reviewActual)
        End Sub
    End Class
End Namespace
Вопрос 8 из 25
Раздел «Структура Arrange — Act — Assert»: какое правило нельзя считать проверенным одним обычным примером?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Explicit On
Option Infer On
Namespace BoundaryCase20_2
    <TestClass>
    Public Class PriceTests
        <TestMethod>
        Public Sub AppliesDiscountToEligibleOrder()
            Dim edgeOrder = New Order(total:=100D, isEligible:=True)
            Dim edgeActual = PriceService.Calculate(edgeOrder)
            Assert.AreEqual(90D, edgeActual)
        End Sub
    End Class
End Namespace
Вопрос 9 из 25
Раздел «Структура Arrange — Act — Assert»: что здесь важнее локального удобства: какой контракт должен быть виден в коде?
Вопрос 10 из 25
Раздел «Структура Arrange — Act — Assert»: какой вывод можно использовать как основание для ревью кода?
Вопрос 11 из 25
Раздел «Подмены»: код использует FakeClock. Какой вывод останется верным при других допустимых входных данных?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Class FakeClock
    Implements IClock
    Public Property Value As DateTimeOffset
    Public Function UtcNow() As DateTimeOffset Implements IClock.UtcNow
        Return Value
    End Function
End Class
Вопрос 12 из 25
Раздел «Подмены»: что следует зафиксировать в ревью, чтобы ошибка не переехала из сборки в выполнение?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Strict On
Namespace ReviewCase20_3
    Class FakeClock
        Implements IClock
        Public Property Value As DateTimeOffset
        Public Function UtcNow() As DateTimeOffset Implements IClock.UtcNow
            Return Value
        End Function
    End Class
End Namespace
Вопрос 13 из 25
Раздел «Подмены»: что изменится первым при нарушении ключевого допущения этого фрагмента?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Explicit On
Option Infer On
Namespace BoundaryCase20_3
    Class FakeClock
        Implements IClock
        Public Property Value As DateTimeOffset
        Public Function UtcNow() As DateTimeOffset Implements IClock.UtcNow
            Return Value
        End Function
    End Class
End Namespace
Вопрос 14 из 25
Раздел «Подмены»: какой выбор не превращает скрытую ошибку в тихое продолжение работы?
Вопрос 15 из 25
Раздел «Подмены»: какое правило остаётся верным для современного Visual Basic?
Вопрос 16 из 25
Раздел «Асинхронные тесты»: что в этом коде определяет результат, а не случайное совпадение тестовых данных?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
<TestClass>
Public Class LoaderTests
    <TestMethod>
    Public Async Function ReturnsContent() As Task
        Dim result = Await Loader.LoadAsync()
        Assert.AreEqual("ok", result)
    End Function
End Class
Вопрос 17 из 25
После рефакторинга код стал короче. Какое условие по теме «Асинхронные тесты» нельзя потерять?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Strict On
Namespace ReviewCase20_4
    <TestClass>
    Public Class LoaderTests
        <TestMethod>
        Public Async Function ReturnsContent() As Task
            Dim reviewResult = Await Loader.LoadAsync()
            Assert.AreEqual("ok", reviewResult)
        End Function
    End Class
End Namespace
Вопрос 18 из 25
Раздел «Асинхронные тесты»: какое утверждение поможет отличить настоящий дефект от случайности тестовых данных?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Explicit On
Option Infer On
Namespace BoundaryCase20_4
    <TestClass>
    Public Class LoaderTests
        <TestMethod>
        Public Async Function ReturnsContent() As Task
            Dim edgeResult = Await Loader.LoadAsync()
            Assert.AreEqual("ok", edgeResult)
        End Function
    End Class
End Namespace
Вопрос 19 из 25
Раздел «Асинхронные тесты»: какой вариант оставляет важное условие явным для следующего разработчика?
Вопрос 20 из 25
Какой принцип по теме «Асинхронные тесты» стоит закрепить в командных соглашениях?
Вопрос 21 из 25
Раздел «Выбор компромисса»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
<TestClass>
Public Class RepositoryTests
    <TestMethod>
    Public Sub SavesWithRealSqliteTransaction()
        Using db = TestDatabase.Create()
            Dim repository = New Repository(db.Connection)
            repository.Save(New Item With {.Name = "x"})
            Assert.AreEqual(1, repository.Count())
        End Using
    End Sub
End Class
Вопрос 22 из 25
Раздел «Выбор компромисса»: какую договорённость важнее сохранить, чем выиграть несколько строк кода?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Strict On
Namespace ReviewCase20_5
    <TestClass>
    Public Class RepositoryTests
        <TestMethod>
        Public Sub SavesWithRealSqliteTransaction()
            Using db = TestDatabase.Create()
                Dim reviewRepository = New Repository(db.Connection)
                reviewRepository.Save(New Item With {.Name = "x"})
                Assert.AreEqual(1, reviewRepository.Count())
            End Using
        End Sub
    End Class
End Namespace
Вопрос 23 из 25
Раздел «Выбор компромисса»: какой результат следует зафиксировать до запуска отрицательного сценария?
Visual Basic / VB.NETVisual Basic · Тестирование VB.NET-кода
Option Explicit On
Option Infer On
Namespace BoundaryCase20_5
    <TestClass>
    Public Class RepositoryTests
        <TestMethod>
        Public Sub SavesWithRealSqliteTransaction()
            Using db = TestDatabase.Create()
                Dim edgeRepository = New Repository(db.Connection)
                edgeRepository.Save(New Item With {.Name = "x"})
                Assert.AreEqual(1, edgeRepository.Count())
            End Using
        End Sub
    End Class
End Namespace
Вопрос 24 из 25
Раздел «Выбор компромисса»: какой подход сохраняет границу ответственности и делает отказ диагностируемым?
Вопрос 25 из 25
Раздел «Выбор компромисса»: какой вывод описывает семантику, а не предпочтение в оформлении?

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

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

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

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