Assert - Hilfsfunktionen für Fehlerbehandlung

    • Offizieller Beitrag

    Hallo,

    In Vorbereitung einer Buchumgestaltung kommen hier ein paar kleine Funktionen, die von JUnit inspiriert sind und klassische Fehlerfälle abzufangen helfen sollen. Nichts Großes und bisher auch nicht viel mehr als die _Assert-Funktion, die AutoIt schon mitbringt, aber vielleicht ein Anfang, der dem ein oder anderen nützt. An sich halte ich es aber wie Linus: "Ich mache keine Backups, ich lege meinen Code auf einen Server" ;).

    "Assert.au3"
    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.6.1
    Author: peethebee

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Assertion functions.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    Func _AssertTrue($_assert_value, $_assert_id = "?")
    If Not $_assert_value Then
    _AssertMessage("Expected 'True', but found '%s'", $_assert_value, $_assert_id)
    EndIf
    EndFunc ;==>_AssertTrue

    [/autoit] [autoit][/autoit] [autoit]

    Func _AssertError($_assert_value, $_assert_id = "?")
    If @error <> $_assert_value Then
    _AssertMessage("", $_assert_value, $_assert_id)
    EndIf
    EndFunc ;==>_AssertError

    [/autoit] [autoit][/autoit] [autoit]

    Func _AssertNoError($_assert_id = "?")
    _AssertError(0, $_assert_id)
    EndFunc ;==>_AssertError

    [/autoit] [autoit][/autoit] [autoit]

    Func _AssertMessage($_assert_string, $_assert_value, $_assert_id)
    $_assert_msg = StringFormat($_assert_string, $_assert_value, $_assert_id)
    ConsoleWrite("[ERROR] Assert (id='" & $_assert_id & "'): " & $_assert_msg & @CRLF)
    EndFunc ;==>_AssertMessage

    [/autoit]
    &quot;Assert_Tests.au3&quot;
    [autoit]


    #include "Assert.au3"

    [/autoit] [autoit][/autoit] [autoit]

    _AssertTrue(true) ; true
    _AssertTrue(false, "myTestId") ; message in console

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(0)
    _AssertError(0) ; true, no error
    Sleep(0)
    _AssertNoError() ; true, no error

    [/autoit]

    Johannes