ich ziemlich neu bin auf Unit-Tests und ich möchte versuchen, meine Login-Seite mein Ziel für dieses Gerät zu testen sind: -> wenn es in der Datenbank übereinstimmen -> zur Route umleiten ‚/‘ -> wenn nicht -> Umleitung auf Route ‚/ login‘Laravel Testing Login Credential mit phpunit + Multi-Prozess-
<?php
namespace Tests\Feature;
use App\Domain\Core\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class userTest extends TestCase
{
use DatabaseMigrations;
/**
* A basic test example.
*
* @return void
*/
public function testLoginTrue()
{
$credential = [
'email' => '[email protected]',
'password' => 'user'
];
$this->post('login',$credential)->assertRedirect('/');
}
public function testLoginFalse()
{
$credential = [
'email' => '[email protected]',
'password' => 'usera'
];
$this->post('login',$credential)->assertRedirect('/login');
}
}
, wenn ich auf TestLoginTrue testen, seine erfolgreiche Rückkehr zu ‚/‘ Aber wenn ich die TestLoginFalse versuchen ... es zurückgeben gleiche wie TestLoginTrue, sollte es auf '/ login' Route bleiben, Irgendeine Idee?
Plus Ich will versuchen, ob zu überprüfen, wenn ich bereits anmelden kann ich nicht die Login-Seite zugreifen, so meine Idee ist: public function testLoginTrue()
{
$credential = [
'email' => '[email protected]',
'password' => 'user'
];
$this->post('login',$credential)
->assertRedirect('/')
->get('/login')
->assertRedirect('/');
}
aber ... es gibt
1) Tests \ Eigenschaft \ Usertest :: testLoginTrue BadMethodCallException: Methode [get] existiert nicht auf Redirect.
Also, wie man es richtig macht?
Vielen Dank im Voraus
danke für die Workaround :), es funktioniert perfekt. . . aber ich bin seltsam für die Umleitung Dinge ... der TestLoginFalse gibt den Fehler zurück, aber nicht entsprechend an den Controller umgeleitet .. wie auch immer wird bei Ihrem Workaround bleiben, danke: D –