2015-10-26 31 views
6

Buduję API REST w Symfony i chciałbym przetestować je z Behat (używając Mink i rozszerzenia behat dla symfony2). Nie ma problemu z metodami GET, po prostu "kpię" z niektórych obiektów bazy danych, wykorzystuję definicję kroku "Jestem na" i sprawdzam odpowiedź.Jak przetestować interfejs API REST za pomocą Behat i Mink w Symfony 2

Ale jeśli chodzi o sprawdzenie, czy stanowisko danego elementu działa, nie wiem, jak wysyłać parametry post z Mink. Wiem, że można to zrobić za pomocą np. Guzzle, ale myślę, że byłoby o wiele lepiej zrobić to poprzez rozszerzenie Mink i Symfony.

Co szukam jest sposobem definiowania krok taki jak

When I POST to <url> the following data: 
| field1 | field2 | field3 | 
| value1 | value2 | value3 | 

Czy jest jakiś prosty sposób wysłać to za pomocą Mink? Dzięki!

+0

Spójrz na to: https://alfrednutile.info/ posts/103 –

+0

@CarlosGranados yep, czytałem już ten artykuł. Problem polega na tym, że jest to prosta prośba o wpis i chciałbym wysyłać żądanie wewnętrzne tak, jak robi to nork z symfony – petekaner

+0

[Testy żądania aplikacji APi z behat v2 obejmują json, xml, html i cli] (http: // www. inanzzz.com/index.php/post/ajqn/api-request-response-testing-with-behat-v2-includes-json-xml-html-and-cli) i [Api request response testing z behat v1] (http : //www.inanzzz.com/index.php/post/xw1v/api-request-response-testing-with-behat-v1) – BentCoder

Odpowiedz

8

Należy to zrobić tak:

$session->getDriver()->getClient()->request ('POST', $url, $postdata); 

To co norek wykorzystuje przy użyciu metody visit tylko dostać zamiast postu

+2

Działa to tylko w przypadku sterownika Goutte. –

+0

Jaki jest format plików $ postdata? Czy to jest klucz => tablica wartości? – osantos

+0

Podpis $ postdata znajduje się w pliku symfony/browser-kit/Client.php. Tak, $ postdata jest tablicą asocjacyjną. – Everett