Visual Basic for Applications:
Pisanie testów
Jak to zrobić:
Choć Visual Basic for Applications (VBA) nie jest wyposażony w wbudowany framework do testowania, podobnie do tych dostępnych w językach takich jak Python czy JavaScript, wciąż możesz implementować proste procedury testowe do sprawdzania integralności swojego kodu. Oto przykład ilustrujący tę ideę:
Załóżmy, że masz w VBA funkcję, która dodaje dwie liczby:
Function AddNumbers(x As Integer, y As Integer) As Integer
AddNumbers = x + y
End Function
Aby przetestować tę funkcję, możesz napisać inną procedurę, która weryfikuje jej wyjście względem oczekiwanych wyników:
Sub TestAddNumbers()
Dim result As Integer
result = AddNumbers(5, 10)
If result = 15 Then
MsgBox "Test zaliczony!", vbInformation
Else
MsgBox "Test niezaliczony. Oczekiwano 15, ale otrzymano " & result, vbCritical
End If
End Sub
Uruchomienie TestAddNumbers
wyświetli okno wiadomości wskazujące, czy test zakończył się sukcesem, czy porażką, w oparciu o wynik działania funkcji. Choć jest to scenariusz uproszczony, możesz budować bardziej złożone testy, włączając do nich pętle, różne wartości wejściowe, i testowanie wielu funkcji.
Bardziej szczegółowo
Prezentowana tutaj metoda pisania testów w VBA jest manualna i pozbawiona funkcji bardziej zaawansowanych frameworków do testowania dostępnych w innych środowiskach programistycznych, takich jak automatyczne uruchamianie testów, procedury przygotowania i zakończenia oraz zintegrowane raportowanie wyników testów. Przed szerszym przyjęciem frameworków do testowania jednostkowego i rozwojem sterowanym testami (TDD), manualne procedury testowe, podobne do opisanej, były powszechne. Chociaż ta metoda jest prosta i może być skuteczna dla małych projektów czy celów edukacyjnych, nie jest skalowalna ani efektywna dla większych projektów lub zespołów.
W środowiskach, które wspierają bogatsze zestawy narzędzi deweloperskich, programiści często zwracają się ku frameworkom jak NUnit dla aplikacji .NET czy JUnit dla aplikacji Java, które dostarczają kompleksowych narzędzi do systematycznego pisania i uruchamiania testów. Te frameworki oferują zaawansowane funkcje, takie jak asercje wyników testów, tworzenie obiektów atrap i mierzenie pokrycia kodu.
Dla programistów VBA, szukających bardziej zaawansowanych możliwości testowania, najbliższą alternatywą może być wykorzystanie zewnętrznych narzędzi lub integracja z innymi środowiskami programistycznymi. Niektórzy programiści używają VBA w połączeniu z Excelem, aby ręcznie rejestrować scenariusze testowe i wyniki. Chociaż nie jest to tak wygodne lub zautomatyzowane jak korzystanie z dedykowanego frameworku do testowania, te metody mogą częściowo zapełnić lukę, pomagając utrzymać niezawodność rozwiązań VBA w złożonych lub krytycznych aplikacjach.