gpt4 book ai didi

ruby-on-rails - 如何在RSpec中使用HTTP状态代码符号?

转载 作者:行者123 更新时间:2023-12-03 09:43:18 25 4
gpt4 key购买 nike

我在 Controller 中的代码中使用HTTP status code symbols:

render json: {
auth_token: user.authentication_token,
user: user
},
status: :created

要么

render json: {
errors: ["Missing parameter."]
},
success: false,
status: :unprocessable_entity

在我的请求规范的代码中,我还想使用符号:

post user_session_path, email: @user.email, password: @user.password
expect(last_response.status).to eq(201)

...

expect(last_response.status).to eq(422)

但是,使用符号而不是整数的每个测试均失败:

Failure/Error: expect(last_response.status).to eq(:created)

expected: :created
got: 201

(compared using ==)

这是 HTTP status code symbols in Rack的最新列表。

最佳答案

一方面,使用以下方法构建响应:

  • 成功吗?
  • 重定向?
  • 无法处理?
  • 完整列表执行:response.methods.grep(/\?/)

  • 另一方面,Rspec谓词将每个 foo?方法转换为 be_foo匹配器。

    不确定您是否可以通过这种方式获得201,但是创建自定义匹配器非常容易。

    注意Rails仅测试 rely on a few statuses

    关于ruby-on-rails - 如何在RSpec中使用HTTP状态代码符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18274709/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com