assertempty - PHPUnit: assertInstanceOf() funktioniert nicht



array assertions (2)

Es ist immer eine gute Idee, ::class wo immer möglich zu verwenden. Wenn Sie sich an diesen Standard gewöhnt haben, müssen Sie keine FQCNs (vollständig qualifizierten Klassennamen) oder umgekehrte Schrägstriche verwenden. IDEs bieten auch eine bessere Funktionalität, wenn sie wissen, dass User hier nicht nur eine Zeichenfolge, sondern eine Klasse ist.

$this->assertInstanceOf(User::class, $user);

Ich muss prüfen, ob eine Variable ein Objekt vom Typ User ist. Benutzer ist meine Klasse $user mein Objekt

$this->assertInstanceOf($user,User);

Das funktioniert nicht, ich habe eine undefinierte Konstante User - angenommen 'User'

Vielen Dank im Voraus für Ihre Hilfe


Answer #1

Oder Sie können so etwas verwenden:

$this->assertInstanceOf(get_class($expectedObject), $user);

Ich verwende dies normalerweise, wenn ich prüfe, ob die Setter-Methode eine Referenz auf sich selbst zurückgibt.

$testedObj = new ObjectToTest();
$this->assertInstanceOf(
    get_class($testedObj), 
    $testedObj->setSomething('someValue'),
    'Setter is not returning $this reference'
);




assertions