Тестування в треку Visual Basic

Дізнайтеся, як тестувати свої вправи з Visual Basic на Exercism


Завантажена вправа містить такі файли для збірки й тестування свого рішення:

hello-world/
├── HelloWorld.vb          # Your solution
├── HelloWorldTests.vb     # The test suite
├── HelloWorld.vbproj      # Project and build configuration
└── packages.lock.json     # Resolved project dependencies

Назви файлів залежать від вправи. Пишіть своє рішення в першому файлі .vb. Другий файл, назва якого закінчується на Tests.vb, - це [набір тестів xUnit][xunit]. Зазвичай його редагують лише для того, щоб увімкнути наступні тести. Жоден із останніх двох файлів редагувати не потрібно. Файл .vbproj містить налаштування збірки проєкту та прямі посилання на пакети. Згенерований файл packages.lock.json фіксує остаточно визначені версії прямих і транзитивних пакетів.

Note

Тести описують поведінку, якій має відповідати рішення, що проходить усі тести. Вони допомагають зʼясувати деталі, не висвітлені у вказівках.

Запуск тестів

Відкрийте термінал у каталозі вправи та виконайте:

dotnet test

Команда відновлює залежності проєкту, збирає проєкт і запускає його тести. Також можна використати dotnet watch test, щоб перезапускати тести щоразу, коли змінюється файл із кодом.

Пропущені тести

У вправах спочатку увімкнено лише перший тест, щоб ми могли розвʼязувати решту поступово, крок за кроком. Відкрийте файл, назва якого закінчується на Tests.vb, щоб побачити тести. Кожен тест - це підпрограма Sub, позначена атрибутом xUnit <Fact>. Тест пропускається, доки його атрибут <Fact> має аргумент Skip:

<Fact(Skip:="Remove this Skip property to run this test")>
Public Sub Lowercase_words()
    Assert.Equal("ROR", Abbreviate("Ruby on Rails"))
End Sub

Щоб увімкнути тест, просто приберіть аргумент Skip:

<Fact>
Public Sub Lowercase_words()
    Assert.Equal("ROR", Abbreviate("Ruby on Rails"))
End Sub

Після того, як щойно ввімкнений тест пройде, повторіть цей процес із наступним пропущеним тестом. Коли всі тести увімкнено й усі проходять, усе готово.