2011-06-06 77 views
0

如何在Symfony功能测试中测试响应,如果某个操作返回json对象?Symfony功能测试JSON

我的代码

 
with('response')->begin()-> 
    isHeader('content-type','application/json')-> 
end() 
; 

但测试总是失败。

+1

我不认为这是简单,因为它是区分大小写? 标题通常写在我的经验大写C - 只是一个猜测。 – benlumley 2011-06-06 08:56:37

回答

1

以下网址可以告诉你如何测试:Practical symfony Day 15: Web Services

下面是从页的相关代码:

$browser-> 
info('1 - Web service security')-> 

info(' 1.1 - A token is needed to access the service')-> 
get('/api/foo/jobs.xml')-> 
with('response')->isStatusCode(404)-> 

info(' 1.2 - An inactive account cannot access the web service')-> 
get('/api/symfony/jobs.xml')-> 
with('response')->isStatusCode(404)-> 

info('2 - The jobs returned are limited to the categories configured for the affiliate')-> 
get('/api/sensio_labs/jobs.xml')-> 
with('request')->isFormat('xml')-> 
with('response')->begin()-> 
    isValid()-> 
    checkElement('job', 32)-> 
end()-> 

info('3 - The web service supports the JSON format')-> 
get('/api/sensio_labs/jobs.json')-> 
with('request')->isFormat('json')-> 
with('response')->matches('/"category"\: "Programming"/')-> 

info('4 - The web service supports the YAML format')-> 
get('/api/sensio_labs/jobs.yaml')-> 
with('response')->begin()-> 
    isHeader('content-type', 'text/yaml; charset=utf-8')-> 
    matches('/category\: Programming/')-> 
end() 
;