如何在Symfony 2中使用Behat和Mink测试REST API

问题描述:

我正在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

你应该做的是这样的:

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

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

+2

这只适用于Goutte驱动程序。 –

+0

$ postdata的格式是什么?它是关键=>值数组? – osantos

+0

$ postdata签名位于symfony/browser-kit/Client.php中。是的,$ postdata是一个关联数组。 – Everett