2015-10-26 37 views
6

我正在Symfony中建立一個REST API,我想用Behat測試它(使用Mink和symfony2的behat擴展)。 GET方法沒有問題,我只是「模擬」一些數據庫對象,使用「我在」步驟定義並檢查響應。如何在Symfony 2中使用Behat和Mink測試REST API

但是,當涉及到測試某個元素的帖子是否有效時,我不知道如何發送後綴參數與水貂。我知道它可以用Guzzle來完成,但我認爲通過Mink和Symfony擴展可以做得更好。

我正在尋找的是將其定義爲

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

有沒有簡單的方法來發送這個用水貂這樣的步驟的方式嗎?謝謝!

+0

看看這個:https://alfrednutile.info/帖子/ 103 –

+0

@CarlosGranados是的,我已經閱讀過那篇文章。問題是,做了一個簡單的post請求,我想用蛤蜊做symfony – petekaner

+0

[behat v2包含json,xml,html和cli的Api請求響應測試](http:// www。 inanzzz.com/index.php/post/ajqn/api-request-response-testing-with-behat-v2-includes-json-xml-html-and-cli)和[使用behat v1的Api請求響應測試](http ://www.inanzzz.com/index.php/post/xw1v/api-request-response-testing-with-behat-v1) – BentCoder

回答

8

你應該做的是這樣的:

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

這是貂皮以其visit方法只用得到的,而不是後

+2

這隻適用於Goutte驅動程序。 –

+0

$ postdata的格式是什麼?它是關鍵=>值數組? – osantos

+0

$ postdata簽名位於symfony/browser-kit/Client.php中。是的,$ postdata是一個關聯數組。 – Everett