2017-01-13 5 views
1

Kann mir jemand ein vollständiges minimales Beispiel für das Versagen am Ende des Verhaltens zeigen?Expect (Fehler am Ende)

The docs I found sagt nur:

expect.that(actual).isEqualTo(expected); // supplied by @Rule 

Anwendungsfall: Ich möchte einen Test haben, mehrere behauptet (Behauptungen auf das gleiche Objekt, aber ich möchte alle Ausfälle behaupten sehen, denn der Test selbst ist ein langwieriger Prozess).

Antwort

1

Expect soll als JUnit @Rule verwendet werden. Sie werden im Quellcode sehen, dass die AssertionError nach dem Test ausgelöst wird, in der rule's apply() method. Hier ist eine vereinfachte Version von dem, was sie tut:

public void evaluate() throws Throwable { 
    // this invokes the test, collecting failures in gatherer 
    base.evaluate(); 
    // after the test finishes the failures are collected and thrown 
    if (!gatherer.getMessages().isEmpty()) { 
    throw new AssertionError(gatherer.toString()); 
    } 
} 

Es gibt eine example usage of Expect in den Unit-Tests (was nicht der Fall ist, es zu sagen sollte nicht besser dokumentiert sein). Im Wesentlichen, fügen Sie einfach eine Zeile wie:

@Rule public final Expect expect = Expect.create(); 

Dann expect.that(foo).... Behauptungen über foo zu machen verwenden, die die Prüfung nicht bestanden schnellt nicht dazu führen, anstatt versagt, wenn der Test abgeschlossen ist.