Frage

Es scheint, dass die meisten XUnit Test-Frameworks bieten Behauptungen für die Zeiten, wenn Sie behaupten wollen, dass eine bestimmte Operation eine Ausnahme ausgelöst wird (oder ein Fehler in AS3 parlance.) Gibt es eine „Standard“ Art und Weise, dies zu tun, was ich bin mit Blick auf, was das Fehlen einer assertError () Behauptung erklären würde, eingeschlossen mit Flexunit?

Ich weiß, wie so etwas implementieren, und ich werde wahrscheinlich es meinen Flexunit (go Open Source!) Hinzufügen, aber es scheint, wie so ein eklatantes Versäumnis, die ich frage mich, links, wenn ich es falsch, nur mach .

Wer noch Gedanken dazu?

War es hilfreich?

Lösung

Edit 05.02.2010: ich jetzt würde empfehlen, mit Flexunit 4 . Es verwendet ein erweiterbares metdata System unterstützt erwartete Ausnahmen, und auch ohne den Einsatz von AIR in einer Integrationsserver-Umgebung unterstützt die Ausführung.

Edit: Sie sollten einen Blick auf fluint , die von Menschen gebaut wurde, die genug von Flexunit hatte und es Einschränkungen. Es könnte in einigen dieser Arten von Behauptungen aufgebaut haben.

Ich bin völlig einverstanden. In der Tat fehlt Flexunit mehrere nützliche Methoden (assertEvent, assertArrayEquals, etc). Ich weiß, Sie sagten, Sie wissen, wie es zu implementieren, aber fühlen Sie sich frei Mine zu verwenden:

public static function assertError(message : String, func : Function, errorClass : Class = null, errorMessage : String = null, errorCodes : Array = null) : Error 
{
    _assertionsMade++;

    if (errorClass == null) errorClass = Error;

    try
    {
        func();
    }
    catch(ex : Error)
    {
        if (!(ex is errorClass))
        {
            fail("Expected error of type '" + getQualifiedClassName(errorClass) + "' but was '" + getQualifiedClassName(ex) + "'");
        }

        if (errorMessage != null && ex.message != errorMessage)
        {
            fail("Expected error with message '" + errorMessage + "' but was '" + ex.message + "'");
        }

        if (errorCodes != null && errorCodes.indexOf(ex.errorID) == -1)
        {
            fail("Expected error with errorID '" + errorCodes.join(" or ") + "' but was '" + ex.errorID + "'");
        }

        return ex;
    }

    if (message == null)
    {
        message = "Expected error of type '" + getQualifiedClassName(errorClass) + "' but none was thrown"
    }

    fail(message);

    return null;
}

Andere Tipps

4 Flexunit mates gut mit hamcrest-AS3. hamcrest hat Fehler Behauptung Matcher

Sie möchten mit dieser Behauptung Werkzeug berücksichtigen.

Es ersetzt nicht die xxxunit Rahmen, erleichtern nur die Behauptungen, die Sie machen, machen sie Englisch und weniger Code.

https://github.com/osher/should.as

var p:Person = new Person();

//assume a method p.sayHi()
p.sayHi.should().throwError('name is not set');

p.name = "Radagast";
p.sayHi.should().not.throwError();

Viel Spaß:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top