【问题标题】:how to use rspec to post a json body to API如何使用 rspec 将 json 正文发布到 API
【发布时间】:2016-04-05 11:01:43
【问题描述】:

我开始编写一个测试,它使用 rpsec 将 json 正文发布到 API 并检查响应。

我在网上搜索了很多,但我找不到最简单的方法。

例如 我想将 json 正文发布到 https://my-web-site/notification 并检查响应为 201。

你们介意帮助我开始第一步吗?

非常感谢。

【问题讨论】:

    标签: json post rspec


    【解决方案1】:

    最简单的方法是使用控制器规范:

    RSpec.describe NotificationController, :type => :controller do
      # If you want to inspect the response, include this
      # render_views
    
      it "sends JSON data" do
        post "/notification", foo: "bar", format: :json
    
        expect(response.status).to eq(201)
        # To examine the response:
        # response_json = JSON.parse(response.body)
        # expect(response_json).to eq({some: :object})
      end
    end
    

    我建议实际检查正文 JSON 响应。只测试响应代码可能没有那么有意义。

    【讨论】:

    • 非常感谢您这么快回答。对不起,我没有基础知识,也许这些问题很愚蠢。我是否必须编写另一个规范来定义类或其他东西?我应该在哪里定义网址?非常感谢
    • 当然,如果它回答了您的问题,请随时接受。
    • 您能告诉我在哪里定义 url 吗?我应该如何定义 NotifictionController?谢谢你
    • NotificationController 只是一个例子,不管你的控制器的名字是什么。 URL 是您的 routes.rb 中指定的任何内容
    • 哦,我明白了。我需要编写一个控制器和routes.rb。我将学习如何去做。谢谢你
    猜你喜欢
    • 2022-01-27
    • 2016-09-12
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    相关资源
    最近更新 更多