如何在symfony2中对需要POST数据的Web服务进行功能测试?

时间:2013-04-26 18:12:50

标签: symfony symfony-2.1

我设计了一个提供restful Web服务的symfony Web应用程序。我想编写一组功能测试来测试这些返回JSON数据的Web服务。

但我不确定如何测试需要将一些测试数据发布给他们的Web服务。这是我如何将一些数据发布到我的symfony应用程序中的Web服务URL,以便我可以断言某些响应?顺便说一下,我喜欢Symfony作为框架

所以这里是一些测试GET响应的示例代码:

 public function testIndex()
    {
        $client = static::createClient();

        $crawler = $client->request('GET', '/demo/hello/Fabien');

        $this->assertGreaterThan(
            0,
            $crawler->filter('html:contains("Hello Fabien")')->count()
        );
    }

如果上面的/ demo / hello / Fabien需要一些帖子数据怎么办?

非常感谢您的一些见解

1 个答案:

答案 0 :(得分:1)

内容是请求函数中的第6个参数,因此您可以执行以下操作:

$data = json_encode(array('name' => 'Fabian'));

$crawler = $client->request(
    'POST',
    '/demo/hello',
    array(),
    array(),
    array(),
    $data
);