Pregunta

Estoy escribiendo algunas características de Cucumber para mi aplicación RoR que insertan registros en la base de datos y luego envían una consulta a mi API XML. Debido a la naturaleza de mis solicitudes (XML codificado), necesito saber cuál será el ID de una fila. Aquí está mi Escenario:

Scenario: Client requests call info
  Given There is a call like:
    | id         | caller_phone_number |
    | 1          | 3103937123          |
  When I head over to call info
  And Post this XML:
    """
    <?xml version="1.0" encoding="UTF-8"?>
    <request-call-info>
      <project-code>1000000001</project-code>
    </request-call-info>
    """
  Then The call info should match
  And The status code should be 0

Tengo Cuke configurado con mi _test base de datos, y también noté que no se reinician todas las tablas antes de ejecutar mis funciones.

¿Cuál es la forma correcta de configurar esto? Gracias!

¿Fue útil?

Solución

En primer lugar, perdóname ya que esto va a ser un poco de un volcado de cerebro, pero espero que te ayude o al menos te dé algunas ideas:

Podrías reescribir tu escenario de esta manera:

Scenario: Client requests call info
    Given There is a call with the phone number "3102320"
    When I post "request-call-info" xml to "call info" for the phone number "3102320"
    Then the call info for phone number "3102320" should match
        And the status code for phone number "3102320" should be 0

De esta manera puede referirse al registro por un atributo que no es la clave principal.

¿Estás utilizando accesorios? Si es así, puede establecer la ID para el registro allí explícitamente.

Dependiendo de su aplicación, puede ejecutar sus pruebas usando una base de datos en memoria sqlite3.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top