Переменная экземпляра недоступна в шагах огурца - PullRequest
0 голосов
/ 04 сентября 2018

Привет, я работаю над проектом rails, где мне нужно протестировать API с Cucumber. У меня есть некоторые переменные экземпляра для хранения URL, токена и т. д. Мой первый сценарий работает нормально, но мой второй сценарий не выполняется из-за нулевого значения переменных экземпляра.

Файл функции:

Feature: Bill Reminder

  Scenario: Validate POST bill_reminder API with valid parameters
    When I make POST bill_reminder API call
    Then It should return success for bill_reminder

  Scenario: Validate GET bill_reminder API with valid login token
    when I send a GET request to bill reminder details
    Then the json response should have title bill reminder

Файл шагов:

When(/^I make POST bill_reminder API call$/) do
  @url = 'http://example.com/api/bill_reminders'
  @params = {
              data: {
                type: "bill-reminders",
                attributes: {
                  title: "bill reminder",
                  all_day: "0",
                  start_date: "1409175049",
                  end_date: "1409175049"
                }
              }
            }
  @login_token = 'nev4hPOqyVCXGnOXLYPUhQ'
  @user_id = 402
end

Then(/^It should return success for bill_reminder$/) do
  header 'login_token', @login_token
  header 'user-id', @user_id
  response = post @url, @params

  response_body = JSON response.body
  @id = response_body['data']['id']
  expect(response.status).to eq(200)
end

When(/^I send a GET request to bill reminder details$/) do
  @url = "http://example.com/api/bill_reminders/#{@id}"
  @user_id = 402
  @login_token = 'nev4hPOqyVCXGnOXLYPUhQ'
end

Then(/^the json response should have title bill reminder$/) do
  header 'login_token', @login_token
  header 'user-id', @user_id

  response = get @url
  expect(response.status).to eq(200)
end

Здесь мой второй сценарий «ответ json должен иметь напоминание о счете заголовка» завершается неудачей из-за нулевого значения переменных экземпляра. Я не знаю, почему значение переменных экземпляра равно нулю во втором сценарии. Пожалуйста, помогите мне исправить это.

1 Ответ

0 голосов
/ 04 сентября 2018

Во 2-м Когда шаг определения, вы пропускаете подчеркивание _ в методе.

When(/^I send a GET request to bill_reminder details$/) do
  @url = "http://example.com/api/bill_reminders/#{@id}"
  @user_id = 402
  @login_token = 'nev4hPOqyVCXGnOXLYPUhQ'
end
...