Visual Basic for Applications:
Skriva tester

Hur man gör:

Även om Visual Basic for Applications (VBA) inte kommer med ett inbyggt testramverk liknande de som finns tillgängliga i språk som Python eller JavaScript, kan du fortfarande implementera enkla testprocedurer för att kontrollera integriteten hos din kod. Här är ett exempel som illustrerar detta:

Anta att du har en funktion i VBA som lägger ihop två tal:

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

För att testa denna funktion kan du skriva en annan procedur som validerar dess utdata mot förväntade resultat:

Sub TestAddNumbers()
    Dim result As Integer
    result = AddNumbers(5, 10)
    If result = 15 Then
        MsgBox "Test Godkänt!", vbInformation
    Else
        MsgBox "Test Misslyckades. Förväntade 15 men fick " & result, vbCritical
    End If
End Sub

Att köra TestAddNumbers kommer att visa en meddelanderuta som indikerar om testet godkändes eller misslyckades baserat på funktionens utdata. Även om detta är ett förenklat scenario, kan du bygga mer komplexa tester genom att införa slingor, olika inmatningsvärden och testning för flera funktioner.

Fördjupning

Angreppssättet för att skriva tester i VBA som visas här är manuellt och saknar funktionerna hos mer sofistikerade testramverk som finns tillgängliga i andra programmeringsmiljöer, såsom automatiserade testkörningar, uppstart/nerstängningsprocedurer och integrerad rapportering av testresultat. Före den bredare adoptionen av enhetstestramverk och testdriven utveckling (TDD) var manuella testprocedurer liknande den som beskrivs vanliga. Även om denna metod är enkel och kan vara effektiv för små projekt eller i lärandesyfte, är den inte skalbar eller effektiv för större projekt eller team.

I miljöer som stödjer rikare utvecklingsverktyg vänder sig programmerare ofta till ramverk som NUnit för .NET-applikationer eller JUnit för Java-applikationer, vilka erbjuder omfattande verktyg för att systematiskt skriva och köra tester. Dessa ramverk erbjuder avancerade funktioner som att fastställa testutfall, ställa in mock-objekt och mäta kodtäckning.

För VBA-utvecklare som letar efter mer avancerade testmöjligheter kan det närmaste alternativet vara att utnyttja externa verktyg eller integrera med andra programmeringsmiljöer. Vissa utvecklare använder VBA i samband med Excel för att manuellt spela in testscenarier och utfall. Även om det inte är lika bekvämt eller automatiserat som att använda ett dedikerat testramverk, kan dessa metoder delvis överbrygga klyftan och hjälpa till att upprätthålla tillförlitligheten hos VBA-lösningar i komplexa eller kritiska applikationer.