Visual Basic for Applications:
Письмо тестів

Як:

Хоча Visual Basic for Applications (VBA) не має вбудованого тестового фреймворка, подібного до тих, що доступні в мовах, на кшталт Python або JavaScript, ви все одно можете впровадити прості тестові процедури для перевірки цілісності вашого коду. Ось приклад для ілюстрації:

Припустімо, у вас є функція в VBA, яка додає два числа:

Function AddNumbers(x As Integer, y As Integer) As Integer
    AddNumbers = x + y
End Function

Щоб протестувати цю функцію, ви можете написати іншу процедуру, яка перевіряє її вихідні дані на відповідність очікуваним результатам:

Sub TestAddNumbers()
    Dim result As Integer
    result = AddNumbers(5, 10)
    If result = 15 Then
        MsgBox "Тест пройдено!", vbInformation
    Else
        MsgBox "Тест не пройдено. Очікувалось 15, але отримано " & result, vbCritical
    End If
End Sub

Виконання TestAddNumbers відобразить діалогове вікно з повідомленням про те, чи пройшов тест або ні, на основі результатів функції. Хоча це спрощений сценарій, ви можете створити більш складні тести, включивши цикли, різні вхідні значення та тестування декількох функцій.

Поглиблений огляд

Підхід до написання тестів у VBA, продемонстрований тут, є ручним і не має функцій більш сучасних тестових фреймворків, доступних у інших середовищах програмування, таких як автоматизовані запуски тестів, процедури встановлення/завершення та інтегрований звіт про результати тестування. До ширшого впровадження фреймворків юніт-тестування та розробки, керованої тестуванням (TDD), ручні процедури тестування, подібні описаній, були поширені. Хоча цей метод є простим і може бути ефективним для маленьких проектів або для навчальних цілей, він не є масштабованим або ефективним для більших проектів або команд.

У середовищах, які підтримують більш багаті набори інструментів розробки, програмісти часто звертаються до фреймворків на кшталт NUnit для .NET-застосунків або JUnit для Java-застосунків, які надають всебічні засоби для систематичного написання і виконання тестів. Ці фреймворки пропонують передові функції, такі як перевірка результатів тесту, налаштування макетів об’єктів і вимірювання покриття коду.

Для розробників VBA, які шукають більш передові можливості тестування, найближчою альтернативою може бути використання зовнішніх інструментів або інтеграція з іншими середовищами програмування. Деякі розробники використовують VBA разом з Excel для ручного запису тестових сценаріїв та результатів. Хоча це не так зручно або автоматизовано, як використання спеціалізованого тестового фреймворка, ці методи можуть частково заповнити прогалину, допомагаючи підтримувати надійність рішень VBA у складних або критичних застосуваннях.