Visual Basic for Applications:
Tests Schrijven

Hoe te:

Hoewel Visual Basic for Applications (VBA) niet wordt geleverd met een ingebouwd testraamwerk vergelijkbaar met die beschikbaar in talen zoals Python of JavaScript, kun je nog steeds eenvoudige testprocedures implementeren om de integriteit van je code te controleren. Hier is een voorbeeld ter illustratie:

Stel je hebt een functie in VBA die twee getallen optelt:

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

Om deze functie te testen, kun je een andere procedure schrijven die de uitvoer ervan valideert tegen verwachte resultaten:

Sub TestAddNumbers()
    Dim resultaat As Integer
    resultaat = AddNumbers(5, 10)
    If resultaat = 15 Then
        MsgBox "Test Geslaagd!", vbInformation
    Else
        MsgBox "Test Mislukt. Verwacht was 15 maar kreeg " & resultaat, vbCritical
    End If
End Sub

TestAddNumbers uitvoeren zal een berichtvenster tonen dat aangeeft of de test geslaagd of mislukt is op basis van de uitvoer van de functie. Hoewel dit een vereenvoudigd scenario is, kun je complexere tests bouwen door lussen, verschillende invoerwaarden en tests voor meervoudige functies te incorporeren.

Diepe Duik

De benadering om tests in VBA te schrijven zoals hier getoond, is handmatig en mist de functies van geavanceerdere testraamwerken die beschikbaar zijn in andere programmeeromgevingen, zoals geautomatiseerde testuitvoeringen, setup/teardown-procedures en geïntegreerde rapportage van testresultaten. Voordat de bredere acceptatie van unit testraamwerken en test-gedreven ontwikkeling (TDD) plaatsvond, waren handmatige testprocedures vergelijkbaar met de beschrevene gebruikelijk. Hoewel deze methode eenvoudig is en effectief kan zijn voor kleine projecten of leerdoeleinden, is het niet schaalbaar of efficiënt voor grotere projecten of teams.

In omgevingen die rijkere ontwikkelingstools ondersteunen, wenden programmeurs zich vaak tot raamwerken zoals NUnit voor .NET-toepassingen of JUnit voor Java-toepassingen, die uitgebreide tools bieden voor het systematisch schrijven en uitvoeren van tests. Deze raamwerken bieden geavanceerde functies zoals het bevestigen van testresultaten, het opzetten van mock-objecten en het meten van codebedekking.

Voor VBA-ontwikkelaars die op zoek zijn naar meer geavanceerde testmogelijkheden, is het dichtstbijzijnde alternatief misschien het gebruikmaken van externe tools of integratie met andere programmeeromgevingen. Sommige ontwikkelaars gebruiken VBA in combinatie met Excel om testsituaties en -resultaten handmatig te registreren. Hoewel niet zo gemakkelijk of geautomatiseerd als het gebruik van een toegewijd testraamwerk, kunnen deze methoden de kloof gedeeltelijk overbruggen, helpend bij het behouden van de betrouwbaarheid van VBA-oplossingen in complexe of kritieke toepassingen.