2017-09-18 1 views
0

Lernen Lumen V5.5 PHP-Framework und haben einen Roadblock getroffen, die Schaffung meiner ersten PHP-Unit-Test. Die App funktioniert mit Postman, wenn ich die URL einstelle und die POST Methode auswähle und im Body "root" wähle und den Typ auf "application/json" setze. Wir kennen also die Post-Arbeiten, nur um einen Test zu erstellen.Lumen 5.5 Unit-Test Post JSON

Hier ist die nächste Sache, was ich denke, eine Arbeitseinheit Test sein sollte:

public function testPostJson() { 
    $the_json = '{"client_guid": "C00A0EA5-3F64-01EA-C4B6-159EA145AB3B"}'; 
    $the_headers = [ 'CONTENT_TYPE' => 'application/json' ]; 
    $this->call(
     'POST', 
     '/getClientNotes', 
     [], 
     [], 
     [], 
     $the_headers, 
     $the_json 
    ); 
    $this->assertResponseOk(); 
    $this->assertEquals(true, $this->response->status); 
} 

Aber natürlich gibt es Fehler wie:

  • 1) NotesTest :: testPostJson Erwartete Statuscode 200, bekam 404. *
  • 2) Error: nicht definierte Eigenschaft: Illuminate \ Http \ Antwort :: $ status

nicht viel in der Art und Weise der Dokumentation auch an der Lumen docs Website: https://lumen.laravel.com/docs/5.5/testing

+0

ist die Route für POST oder GET erstellt? getClientNotes klingt wie eine GET-Anfrage. – xelber

+0

Nein, nicht ein POST hier ist die Route: $ app-> Post ('Note/getClientNotes', 'NoteController @ getClientNotes'); –

+0

gut Mist, dort ist mein erster Fehler ... '/ getClientNotes', sollte 'Note'/getClientNotes 'sein, –

Antwort

0

Nun, hier ist der Arbeits Code ... Ich fehlte die „Note /“ in dem 2. Parameter des $ this-> Anruf().

class NotesTest extends TestCase { 

protected $send_headers = null; 
protected $send_json = null; 
protected $receive_json = null; 

public function testIsApiAlive() { 
    $this->call("GET",'/'); 
    $this->assertEquals($this->app->version(), $this->response->getContent()); 
    $this->assertEquals(200, $this->response->status()); 
} 

public function testPostJson() { 
    $this->send_json = '{"client_guid": "C00A0EA5-3F64-01EA-C4B6-159EA145AB3B"}'; 
    $this->send_headers = [ 'CONTENT_TYPE' => 'application/json' ]; 
    $this->call(
     'POST', 
     'note/getClientNotes', 
     [], 
     [], 
     [], 
     $this->send_headers, 
     $this->send_json 
    ); 
    $this->receive_json = json_decode($this->response->getContent()); 
    $this->assertEquals(200, $this->response->status()); 
    $this->assertTrue(isset($this->receive_json->status)); 
    $this->assertTrue($this->receive_json->status == true); 
    $this->assertTrue(isset($this->receive_json->data[0]->agency)); 
    $this->assertTrue($this->receive_json->data[0]->agency == 'demo'); 
} 

Hier ist die Befehlszeile Ergebnisse:

C:\xampp\htdocs\jsonproject\tests\>phpunit NotesTest.php 
PHPUnit 5.7.21 by Sebastian Bergmann and contributors. 

..                 2/2 (100%) 

Time: 740 ms, Memory: 10.00MB 

OK (2 tests, 7 assertions) 
Verwandte Themen