微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当十进制响应作为字符串返回时,如何在 RSpec/RSwag 中指定十进制模式格式?

如何解决当十进制响应作为字符串返回时,如何在 RSpec/RSwag 中指定十进制模式格式?

所以我的 :decimal 格式的 DB 字段作为字符串返回,并使我的测试失败。

我有一个使用 RSwag 的请求规范,我试图通过格式检查通过它,但它告诉我以下内容:-

Rswag::Specs::UnexpectedResponse:
       Expected response body to match schema: The property '#/budget' of type string did not match the following type: number in schema 

我的测试:-

 path '/api/v1/jobs/{id}' do
    parameter name: 'id',in: :path,type: :string,description: 'Job id'

    get('show job') do
      tags 'Jobs'
      response(200,'successful') do
        schema type: :object,properties: {
                 title: { type: :string },description: { type: :string },date: { type: :string,format: 'date-time',nullable: true  },budget: { type: :number,format: 'double' },awarded: { type: :boolean },created_at: { type: :datetime},updated_at: { type: :datetime}
               }
        let(:id) { @job.id }

        after do |example|
          example.Metadata[:response][:content] = {
            'application/json' => {
              example: JSON.parse(response.body,symbolize_names: true)
            }
          }
        end
        run_test!
      end
    end

解决这个问题的最佳方法是什么?如果我必须将所有字段都设置为字符串,那么在我的 API 文档中使用 Swagger 就有点毫无意义了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?