Assert: Fehlerbedingung in String schreiben

K

klaushorneber

Gast
Hey,

ich checke das mit dem assert-Zeug nicht.
Ich würde gerne eine Bedingung überprüfen, ob die so richtig ist und das mit assert und wenns falsch is, die Ausgabe in einen String schreiben. Geht das?

Oder habt ihr ne andere Idee, nen UnitTest durchzuführen?
 
G

Gast2

Gast
Warum willst du die Ausgabe in einen String schreiben?

Ansonsten mach doch folgendes:
Java:
assertTrue(bedingung, "Meldung");
=>
Java:
if (bedingung) {
  message = "Meldung";
}
 
S

SlaterB

Gast
geht

da du assert schon genannt hast, was soll man dann noch sagen außer Beispielen die du auch überall findest,
poste doch deinen Code, schreibe irgendwas außer 'check ich nicht'..
 
N

nillehammer

Gast
Die Syntax um einem evtl. filegenden AssertionError eine Message mitzugeben ist wie folgt:
Java:
assert param != null : "Param darf nicht null sein";
Das erste Argument ist eine boolean-Expression, die false sein muss, damit der AssertionError fliegt. Das zweite Argument muss kein String-Literal sein. Du kannst hier auch das Ergebnis eines Methodenaufrufs, String.format, ganz andere Objekte oder irgendwas, was Du in der Message sehen willst, angeben.

Aber ich persönlich finde
Code:
assert
nicht gut. Der einzige Vorteil ist, dass der entspr. Code sehr kompakt ist. Nachteile sind: Assertions müssen angeschaltet sein, damit sie überhaupt funktionieren. Und der AssertionError selbst sagt nichts über die Fehlerursache aus. Spezifische Exceptions sind da schon aussagekräftiger. Deswegen mach ich mach immer die Prüfung und schmeiß dann selbst die passende Exception (NullPointer, IllegalArgument, NoSuchElement etc.)
 
Zuletzt bearbeitet von einem Moderator:
K

klaushorneber

Gast
Naja, warum soll ich großartig Code posten.. Ich hätte die Assert-Fehler-Ausgabe gerne in einem String. Also das hier mit assert.

Java:
if (bedingung==false){
String ausgabe="Fehler";
}

Aber mit assert und nicht so, weil das ein Unittest sein soll.

Ideen?
 
S

SlaterB

Gast
ein assert ist allein für AssertExceptions da, kann weder als Taschenrechner, Solarkraftwerk noch zum Setzen von Variablen genutzt werden,

du könntest dir deine eigene Basisklasse schreiben mit ähnlichen neuen Methoden,
aber etwas Technik ist dabei immer noch zu beachten, eine Zuweisung etwa passiert nicht durch Magie, sondern durch Zuweisungsoperator
> ausgabe = a(bedingung, textA, ausgabe);
z.B. schreibt, falls entsprechend als Methode definiert, entweder textA oder den alten Wert/ DefaultWert in die Variable

zur vorhandener Syntax des Bedingungsoperators:
> ausgabe = bedingung ? textA : ausgabe;
ist das allerdings kein großer Fortschritt, außer dass man in der Methode z.B. loggen könne, wann was mit welchem Ergebnis geprüft wurde
 
Zuletzt bearbeitet von einem Moderator:
B

bygones

Gast
soweit ich es verstanden habe schreibt er einen unittest und will dort per assert eine Zusicherung machen. Ist diese falsch, so will er einen String ausgeben - da braucht man keine Basisklasse oder sonstiges, sondern einfach JUnit
 
K

klaushorneber

Gast
Jaa... ich schreibe einen Unittest. Kann aber Fehlermeldungen nicht einfach so ausgeben, weil der Test auf einer Box ohne Bildschirm laufen soll und so mögliche Fehlermeldungen mittels eines Loggers an einen anderen Rechner mit Bildschirm geschickt werden. Aber den Logger kann ich nicht so einfach verwenden, ich muss die Ausgabe in einen String schreiben und kann den dann im Logger ausgeben.
 
S

SlaterB

Gast
auch für sowas bieten sich Basismethoden ideal an, ohne String-Variable,
einfach
log(bedingung, textA);
oder
check(bedingung, textA);
welches je nach Konfiguration/ einmaliger Umschalter ein normales assert ausführt,
oder irgendwo eine Log-Ausgabe schreibt,
ob dann noch eine Exception abbricht oder es nach der Methode weitergeht, kann man beliebig entscheiden, auch mit mehreren unterschiedlichen derartigen Methoden

log(bedingung, textA);
logBreak(bedingung, textA);

ein normales assert zu benutzen, direkte JUnit-Methoden oder sonstige umfangreiche Frameworks wie Session aus DB-Umgebungen ist immer kritisch unveränderlich,
ideal ist immer, einfach alles in eigenen Klassen zu wrappen, dann hat man die volle Kontrolle,

mit vergleichsweise minimalen Änderungen/ gar nur Konfigurationen kann man dann auch von JUnit auf andere Frameworks wechseln,
statt jedes einzelne assert, jede Vererbung austauschen zu müssen,
Abstraktion, Indirektion, Wrapper, Module usw.
 
Zuletzt bearbeitet von einem Moderator:
B

bygones

Gast
Ich halte Slaters Anmerkung immer noch fuer zuviel, wenn man einen Unittest laufen lassen will - sorry. Vor allem bei JUnit - mir ist noch nie untergekommen, dass bei bei Unit tests mal eben das Framework JUnit austauschst und sich daher fuer alle seine Tests mal eben einen Wrapper baut ?!

wir machen es bei uns auf der Arbeit ueber Xvnc um die Ausgaben umzuleiten. Falls ihr Jenkins benutzt gibt es afaik dafuer auch ein plugin
 
S

SlaterB

Gast
Singleton ist out, gerade auch wegen Testbarkeit, Mock-Objekte usw.,
aber ausgerechnet JUnit selber steht darüber, darf nicht gegen eine eigene Dummy-Ablaufsteuerung ausgetauscht werden? ;)

na ist Offtopic, nur für diese Gegenüberstellung nochmal angesprochen
 
B

bygones

Gast
Singleton ist out, gerade auch wegen Testbarkeit, Mock-Objekte usw.,
aber ausgerechnet JUnit selber steht darüber, darf nicht gegen eine eigene Dummy-Ablaufsteuerung ausgetauscht werden? ;)
ich glaub wir reden dimensionsweit aneinander vorbei... ich versteh in keiner weise was diese Aussage sagen soll... bygones - is offtopic
 
K

klaushorneber

Gast
Also, ich habe jetzt selber eine Testklasse mit Testmethoden formuliert. Hat einfach nicht funktioniert.

Aber das muss ich begründen. Hat jmd Argumente für das Nicht-Verwenden von JUnit, assert,... ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JUnitTest Best Practise (Ein Assert pro Test?) Java Basics - Anfänger-Themen 10
P SimpleEntity und Assert, woher nehmen? Java Basics - Anfänger-Themen 8
M JUnit Testmethoden mit mehreren assert Methoden Java Basics - Anfänger-Themen 1
B Break, Continue und Assert Java Basics - Anfänger-Themen 5
V Methoden Schleifeninvariante Assert Anweisungen Java Basics - Anfänger-Themen 6
N Test mit assert Java Basics - Anfänger-Themen 9
A Assert statement Java Basics - Anfänger-Themen 3
S Assert Java Basics - Anfänger-Themen 14
B assert befehl in netbeans Java Basics - Anfänger-Themen 3
O Fragezeichenoperator assert expected Java Basics - Anfänger-Themen 7
L mit "assert" einen String prüfen Java Basics - Anfänger-Themen 5
D assert vor und nachbedingung Java Basics - Anfänger-Themen 9
E Assert Compilerfehler Java Basics - Anfänger-Themen 2
G Assert Java Basics - Anfänger-Themen 5
G Assert in eclipse oder wo/wie? Java Basics - Anfänger-Themen 3
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N null in String replacen Java Basics - Anfänger-Themen 16
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D String mit int multiplizieren? Java Basics - Anfänger-Themen 16
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben