Rswag и Rspec: неопределенный метод для параметра URL - PullRequest
0 голосов
/ 14 декабря 2018

Я работаю над проектом Rails, который использует Swagger через rswag и Rspec для тестирования.Код представляет собой API, который необходимо протестировать через систему Rspec.Я новичок как в rswag, так и в Rspec.

Мой код работает в настоящее время, но он не проходит предусмотренные тесты Rspec.У меня проблема в том, что Rspec сообщает:

NoMethodError:
   undefined method `comment_id' for #<RSpec::ExampleGroups::Comments::CommentsCommentId::Patch::CommentWithProvidedIdSetToSticky:0x000000000c3055a0>

comment_id - это параметр в URL.Вот соответствующее определение Rswag / rspec:

path '/comments/{comment_id}' do
  parameter name: :comment_id, in: :path, type: :string, format: :uuid
  patch 'Sets the sticky comment for a given invoice, client or debtor id' do
    tags 'Comments'
    produces 'application/json'
    consumes 'application/json'
    security [oauth2: []]
    parameter name: :data, in: :body, required: true, schema: {
      type: :object,
      properties: {
        data: {
          type: :object,
          properties: {
            attributes: {
              type: :object,
              required: %i[comment_id],
              properties: {
                sticky_flag: { type: :boolean }
              }
            }
          }
        }
      }
    }

    response '201', 'comment with provided id set to sticky' do
      let(:data) { { comment_id: '', sticky_flag: '' } }
      run_test!
    end

Почему я получаю ошибку No Method в выводе Rspec?

1 Ответ

0 голосов
/ 16 декабря 2018

В вашем path отсутствует :, поэтому ruby ​​рассматривает comment_id как метод или переменную, а этого не существует.

path '/comments/{comment_id}' do

С:

path '/comments/{:comment_id}' do
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...