Hola,
creo que lo primero que tengo que hacer es presentarme, porque aunque llevo tiempo siendo miembro esta es mi primera participación (si la memoria no me falla):
Me llamo Pablo Bouzada (@pbousan en Twitter) y soy desarrollador, llevo algunos años programando en C# aunque también me he peleado con otros. Formo parte de Programando en .NET (
http://programandonet.com/web/), CatDotNet (
http://catdotnet.net/) y algún que otro grupo de usuarios.
Me gustaría preguntar, o más bien abrir un debate, sobre cómo plantear una aproximación con BDD cuando se va a desarrollar una API. Estuve buscando información sobre este tema y encontré esto:
(me vais a perdonar, pero personalmente me sobra el adjetivo "agile" en todo esto)
que me parece una aproximación interesante, aunque creo que se queda en la superficie. Primero porque el escenario es muy sencillo, y segundo porque únicamente se centra en testear métodos GET, dejando de lado los POST, PUT y DELETE, que son los realmente interesantes.
Pongamos un ejemplo un poco más complejo: supongamos que en nuestra API, vamos a tener un método POST que, además de crear un recurso (en base de datos o donde sea) y devolver la URL del nuevo elemento, va a realizar otra acción como puede ser enviar un e-mail, escribir en un fichero o enviar un mensaje a un BUS.
¿Cómo debería ser la especificación? ¿Debería quedarse en comprobar que la API devuelve un código 200 (OK) o 201 (Created) y que envía como respuesta una URI válida?
¿o tendría que comprobarse también que se realiza la siguente acción (enviar mail, mensaje o escribir a fichero)?
Saludos,
Pablo