Ich möchte Laravels Model Factory in einigen PHPUnit-Tests verwenden. Ich möchte nur eine Model-Instanz erstellen, ohne sie in der Datenbank zu speichern.
Warum benötigt die Model Factory eine Verbindung zur Datenbank? Diese Tests müssen die CI-Umgebung ohne konfigurierte Datenbank weitergeben.
Wenn ich das Modell manuell mit new App\Model($dataArray)
erstelle, werden Tests bestanden und die Verbindung wird nicht benötigt.
Ich verwende Model Factory an anderen Stellen, daher möchte ich es in diesen Tests wiederverwenden, um Code-Duplikation zu vermeiden.
Ich benutze MongoDB und jenssegers / laravel-mongodb Bibliothek, aber ich vermute, dass es keine Rolle spielt rein eloquent und z MySQL-Datenbank, das Problem wäre das gleiche.
Test, der ohne Datenbank funktioniert:
%Vor%Meine Modellfabrik
%Vor%Test, der eine Datenbankverbindung benötigt:
%Vor%Vollständige Stapelüberwachung:
%Vor%Ich gehe normalerweise zum Erstellen einer ähnlichen Test-DB und führe alle Tests auf dieser DB aus.
Es stellt sicher, dass Ihr Test-DB-Typ der Produktion entspricht und Sie nicht die Produktions-DB zum Ausführen der Tests berühren.
Tags und Links unit-testing php testing laravel lumen