2017-11-24 4 views
0

Ich schreibe einige Tests für meine Controller, aber einer meiner Tests will nicht arbeiten, und ich weiß nicht, wie es zu beheben ist. Es ist angewiesen, zu suchen und die Ergebnisse auf der Seite zurück zu bekommen. Aber es geht tatsächlich auf die Homepage. Hier ist mein Code:Laravel phpunit testing mit Parametern

use DatabaseMigrations; 
protected $user; 
public function setUp() 
{ 
    parent::setUp(); 

    $this->seed(); 

    $this->user = factory(User::class)->create(['role_id' => 3]); 
} 

/** @test */ 
public function test_manage_search_user() 
{ 
    $response = $this->followingRedirects()->actingAs($this->user)->get('/manage/users/search', [ 
     'choices' => 'username', 
     'search' => $this->user->username, 
    ]); 

    $response->assertViewIs('manage.users'); 
    $response->assertSuccessful(); 
    $response->assertSee($this->user->email); 
} 

Die URL sollte man dann wir in der Lage bekommen sollte wie folgt aussehen:

http://localhost/manage/users/search?choices=username&search=Test 

Ich checkte wieder und es sieht aus wie es die Parameter nicht mit dem get gegeben anfordern. Wie können Sie das beheben?

+0

Welche Laravel Version verwenden Sie? –

+0

Laravel 5.5 Ich benutze ich könnte dies tun: $ response = $ this-> followingRedirects() -> actingAs ($ this-> Benutzer) -> get ('/ manage/users/search? Auswahl = username & search ='. $ this-> Benutzer-> Benutzername. ''); aber das ist nicht so sauber wie ich es will – MrAndre

Antwort

0

Ich würde es tun, wie folgt:

$this->actingAs($this->user); 

$response = $this->get('/manage/users/search', [ 
    'choices' => 'username', 
    'search' => $this->user->username, 
]); 

$response->assertViewIs('manage.users'); 
$response->assertSuccessful(); 
$response->assertSee($this->user->email); 
+0

Mein Problem ist, dass es nicht die Parameter damit gibt. Es funktioniert nur, wenn ich dies: $ this-> followingRedirects() -> actingAs ($ this-> user) -> get ('/ ma nage/users/search? Ch oices = username & search h ='. $ this-> user-> benutze rname. ''); die nicht so gut aussehen – MrAndre

+0

Darf ich fragen, wie Sie Parameter in der Suchmethode abrufen? –

+0

Momentan kann ich sie mit $ request-> get ('choices') bekommen, zum Beispiel – MrAndre