von go2
verstanden wird, ist es leicht, die Behauptung zu verstehen.
Die Methode tut nichts, es behauptet nur Ihre Erwartung, dass x < 0
.
Die go
Methode, auf der anderen Seite, hat eine switch
.
Es ist gute Praxis zu assert false
auf der default
Klausel, wenn Sie absolut nicht Ihr Programm erwarten unter dieser Klausel fallen, dh, die unter normalen Umständen eine der case
s hat, korrekt zu sein.
Der einzige Fall, auf den switch
erwartet x
genau2
zu sein.
Also, um zusammenzufassen, erwarten Sie nicht x
zu größer als 0
, wie die erste Behauptung sagt, erwarten Sie x
zu 2
und nichts anderes. Daher wird die Assertion nicht angemessen verwendet.
jedoch als Jeff erwähnt, hat die case
keine break
, die die default
bedeutet, dass immer dann ausgeführt werden, was in jedem Szenario zu assert false
.
Fazit: Die go
Methode sollte immer zu einem Fehler, so dass assert false
richtig eingesetzt, während assert x > 0
überhaupt nicht korrekt ist.
Der Begriff "verwendet, in geeigneter Weise" ist sehr subjektiv, daher die Verwirrung. Sie sollten diese Frage klären. –
Schauen Sie sich auch diese [Antwort] (http://stackoverflow.com/questions/1957645/when-to-use-assertion-vs-exception) – Amarnath
Es würde wirklich helfen, wenn sie ein Codebeispiel verwendet, das nur eine kleine Menge gemacht der Sinne. – asteri