BDD с огурцом и MySQL & # 8212; проблемы с автоинкрементом

StackOverflow https://stackoverflow.com/questions/1609587

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пишу некоторые функции Cucumber для моего приложения RoR, которые вставляют записи в базу данных, а затем отправляют запрос в мой XML API. Из-за характера моих запросов (жестко закодированный XML) мне нужно знать, каким будет идентификатор строки. Вот мой сценарий:

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

Я настроил Cuke с моей базой данных _test, и я также заметил, что она не сбрасывает все таблицы до запуска моих функций.

Как правильно это настроить? Спасибо!

Это было полезно?

Решение

Во-первых, прости меня, так как это будет чем-то вроде мозгового выброса, но, надеюсь, это должно помочь или хотя бы дать тебе несколько идей:

Вы можете переписать свой сценарий так:

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

Таким образом, вы можете ссылаться на запись по атрибуту, который не является первичным ключом.

Вы используете светильники? Если это так, вы можете явно указать идентификатор записи.

В зависимости от приложения вы можете запускать свои тесты, используя базу данных sqlite3 в памяти.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top