AssertNull sollte verwendet werden oder AssertNotNull


71

Dies ist eine ziemlich dumme Frage, aber mein erstes Mal mit Unit-Tests: Nehmen wir an, ich habe eine Objektvariable wie obj und möchte, dass mein Unit-Test fehlschlägt, wenn dieses Obj Null ist. Soll ich also für Behauptungen AssertNull oder AssertNotNull sagen? Ich bin verwirrt, wie sie genannt werden.


1
@ Gweebz, natürlich hätte er beides versuchen können, aber das ist nicht der Punkt. Er fragt, was angemessener ist.
Steve Kuo

Antworten:


136

Verwenden Sie assertNotNull(obj). assertbedeutet must be.


17
"Assert bedeutet muss sein." gute Sache. jetzt machen sie Sinn. danke
Bohn

19

Die assertNotNull()Methode bedeutet "ein übergebener Parameter darf nicht sein null": Wenn er null ist, schlägt der Testfall fehl.
Die assertNull()Methode bedeutet "ein übergebener Parameter muss sein null": Wenn er nicht null ist, schlägt der Testfall fehl.

String str1 = null;
String str2 = "hello";              

// Success.
assertNotNull(str2);

// Fail.
assertNotNull(str1);

// Success.
assertNull(str1);

// Fail.
assertNull(str2);

5

assertNotNullbehauptet, dass das Objekt nicht null ist. Wenn es null ist, schlägt der Test fehl, also wollen Sie das.


4

Ich möchte das nur hinzufügen, wenn Sie speziellen Text schreiben möchten, wenn er null ist, dann machen Sie es so

  Assert.assertNotNull("The object you enter return null", str1)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.