El tutorial Jobeet

16.2. Probando los servicios web

Si quieres probar el nuevo servicio web que acabamos de crear, copia el archivo de datos de los afiliados del directorio data/fixtures/ al directorio test/fixtures/ y reemplaza el contenido del archivo apiActionsTest.php generado automáticamente por el siguiente código:

// test/functional/frontend/apiActionsTest.php
include(dirname(__FILE__).'/../../bootstrap/functional.php');

$browser = new JobeetTestFunctional(new sfBrowser());
$browser->loadData();

$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')->checkElement('job', 32)->

  info('3 - The web service supports the JSON format')->
  get('/api/sensio_labs/jobs.json')->
  with('request')->isFormat('json')->
  with('response')->contains('"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')->
    contains('category: Programming')->
  end()
;

En el código anterior se utilizan por primera vez dos métodos que te pueden resultar útiles:

  • isFormat(): comprueba el formato de la respuesta
  • contains(): para el contenido que no sea HTML comprueba si la respuesta contiene el trozo de texto que se indica