Ich arbeite an einem kleinen Unit-Test, bei dem ich eine Zeile weich lösche. Um den Test als erfolgreich zu markieren, muss ich diese Zeile finden mit:
deleted_at
column sollte nicht null sein. Ich kann die erste Bedingung erfüllen - denn offensichtlich kenne ich die ID.
Leider weiß ich nicht, wie ich seeInDatabase
method sagen kann, dass ich deleted_at
nicht null:
Irgendwelche Hinweise?
'deleted_at <>' => null
bricht
'deleted_at' => ['!=' => null]
bricht auch
Momentan ist es nicht möglich. Sowohl seeInDatabase
als auch notSeeInDatabase
übergeben das Array direkt an die Methode where
des Abfrage-Generators und verstehen nicht, wie man mit etwas anderem als =
umgeht, wenn ein Array übergeben wird.
Gist: Ссылка
%Vor%Dieses Composer-Paket ist genau derselbe Code wie oben, aber für Composer gepackt.
composer require kirkbater/soft-deletes
Benutze es dann innerhalb deiner spezifischen Testklasse:
%Vor%Ich habe es so gemacht:
%Vor%Ich überprüfe also zwei Schritte
Dies ist eine alte Frage, aber für diejenigen, die neuere Versionen von Laravel (5.4 und höher) verwenden, gibt es jetzt eine assertSoftDeleted
-Assion: Dokumentation .
Die Antwort auf die ursprüngliche Frage lautet nun:
%Vor%Tags und Links unit-testing php testing laravel-5 laravel