2011-06-06 83 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() 
;