In einer zukünftigen Version von assertJ wird eine Methode wasSuccess()
hinzugefügt (wie auf git history zu sehen), aber es ist noch nicht in der aktuellen Version verfügbar.
Wenn diese Methode hinzugefügt wird man so etwas tun kann:
public class AssertjSoftAssert extends SoftAssertions {
private void checkFailure() {
if(!wasSuccess()) {
onFailure();
}
}
private void onFailure() {
//doFailureStuff
}
@Override
public BigDecimalAssert assertThat(BigDecimal actual) {
BigDecimalAssert assertion = super.assertThat(actual);
checkFailure();
return assertion;
}
@Override
public BooleanAssert assertThat(boolean actual) {
BooleanAssert assertion = super.assertThat(actual);
checkFailure();
return assertion;
}
}
Anmerkung Sie jedoch, dass Sie JEDEN Behauptung Methode in der SoftAssertions Klasse außer Kraft setzen müssen, wie ich Ihnen gezeigt habe die Beispiele hier. Und auch wenn neue Assertions zur SoftAssertions-Klasse hinzugefügt werden, müssen Sie diese auch überschreiben. Dies ist die beste Lösung, die ich im Moment finden konnte, wird aber nicht funktionieren, bis assertj aktualisiert wird.
EDIT: Eigentlich sicher, ich bin nicht dies selbst, weil ich nicht sicher bin, funktionieren würde wasSuccess()
nach jedem successvul softassert wahr zurückkehren wird oder erst nach assertAll()
werfen, aber ich dies natürlich nicht testen kann, wie die Funktion nicht aus ist noch.
Bonus: The commit that added wasSuccess()
Welche Assertj Softassert verwenden Sie? Es gibt viele verschiedene Endpunkte, die schwer zu erkennen sind. – Mobrockers
Ich weiß, dass dort von dort Beispiel softsertion Klasse ist. Ich verstehe nicht ganz, was Sie sagen –
Dies sind alle SoftAssertions Varianten assertj bietet: - [AutoCloseableBDDSoftAssertions] (https://github.com/joel-costigliola/assertj-core/blob/master/src/main /java/org/assertj/core/api/AutoCloseableBDDSoftAssertions.java) - [AutoCloseableSoftAssertions] (https://github.com/joel-costigliola/assertj-core/blob/master/src/main/java/org/assertj /core/api/AutoCloseableSoftAssertions.java) - [BDDSoftAssertions] (https://github.com/joel-costigliola/assertj-core/blob/master/src/main/java/org/assertj/core/api/BDDSoftAssertions .java) – Mobrockers