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.

Bohn
quelle
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.

Petar Minchev
quelle
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);
Punya
quelle
5

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

hvgotcodes
quelle
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)
Sportac
quelle