Ich habe eine Reihe von Testfällen für das Registrierungsformular für ein Laravel 5.3-Projekt geschrieben. Einer der grundlegenden Testfälle besteht darin, gefälschte Daten einzufügen und nach der richtigen Umleitung zu suchen. Mein Testfall Code:Laravel 5.3: Hinzufügen einer Modellmethode mit Statuscode 500
/**
* Check for the registration form
*
* @return void
*/
public function testNewUserRegister(){
// Generate a ranom name
$thisName = str_random(8);
// Genearte a random email
$thisEmail = str_random(8)."@google.com";
// Type some valid values
$this->visit('/register')
->type($thisName,'name')
->type($thisEmail,'email')
->type('password123','password')
->type('password123','password_confirmation')
->press('Register')
->seePageIs('/home');
}
Alles war richtig funktioniert und keine Beschwerden von PHPUnit
. Aber wenn ich die folgende Methode in meinem User
Modell enthalten:
// Function to check for the adminship
public function isAdmin(){
// Check if the user is logged in
if(Auth::check()){
// Check if the user is admin
if(Auth::user()->isAdmin){
return true;
}
}
// Return false if not
return false;
}
Die obige Testfall testNewUserRegister
ausfällt und finden Sie die Fehlermeldung:
There was 1 failure:
1) AuthTest::testNewUserRegister
A request to [http://localhost/home] failed. Received status code [500].
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:220
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:92
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:150
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:92
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:125
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:580
/var/www/html/project-css/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:567
/var/www/html/project-css/tests/AuthTest.php:26
Caused by
ErrorException: Undefined property: App\User::$isAdmin in /var/www/html/project-css/app/User.php:36
Des Weiteren finden Sie das Datenbankschema:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->boolean('isAdmin')->default(false);
$table->boolean('hasAccess')->default(true);
$table->rememberToken();
$table->timestamps();
});
Nicht ein Duplikat hier ist, warum:
Es ist nicht aufgrund der Kamelfall wie vorgeschlagen. Wenn der folgende Parameter den folgenden Parameter enthält, schlägt der folgende Parameter noch fehl:
Auch das Schema geändert in Kamel Fall hat mein Problem nicht gelöst noch der Test schlägt fehl.
Sagen Sie mir, was ist klarer als das: 'ErrorException: Undefinierte Eigenschaft: App \ User :: $ isAdmin in /var/www/html/project-css/app/User.php: 36' – Kyslik
@Kyslik gibt es eine Attribut 'isAdmin' im Schema. – PseudoAj
@PseudoAj Können Sie uns Ihr Schema zeigen? – ceejayoz