如何检查参数的值是一定范围内的数字
How do I check that the value of a param is a number in a certain range
我正在尝试为发送 POST 请求的方法编写测试套件,该请求的参数 'target' 必须介于 0 和 10
之间
我的Rubyclass:
class ClassName
before_action :must_have_valid_target
def create
target = params[:target]
. . .
end
def must_have_valid_target
return if params.key?(:target)
error_response(422, 'error message')
end
end
我的Rspec
it 'cannot create request with negative target' do
post(:create, {target: -1})
assert_response(422) # actual result is: Expected 422, Actual 200
end
我试过了:
def must_have_valid_target
valid = params[:target].between?(0,10)
end
但这不起作用。我如何检查符号的值是否介于范围之间,以便我可以在之后给出正确的响应?
这不是家庭作业,我正尝试在我的工作场所向代码库添加额外的测试,但我对 RSpec 和 Ruby 还是很陌生。
params[:target]
是一个字符串,在比较之前转换为整数,
def must_have_valid_target
params[:target].present? && params[:target].to_i.between?(0,10)
end
我正在尝试为发送 POST 请求的方法编写测试套件,该请求的参数 'target' 必须介于 0 和 10
之间我的Rubyclass:
class ClassName
before_action :must_have_valid_target
def create
target = params[:target]
. . .
end
def must_have_valid_target
return if params.key?(:target)
error_response(422, 'error message')
end
end
我的Rspec
it 'cannot create request with negative target' do
post(:create, {target: -1})
assert_response(422) # actual result is: Expected 422, Actual 200
end
我试过了:
def must_have_valid_target
valid = params[:target].between?(0,10)
end
但这不起作用。我如何检查符号的值是否介于范围之间,以便我可以在之后给出正确的响应?
这不是家庭作业,我正尝试在我的工作场所向代码库添加额外的测试,但我对 RSpec 和 Ruby 还是很陌生。
params[:target]
是一个字符串,在比较之前转换为整数,
def must_have_valid_target
params[:target].present? && params[:target].to_i.between?(0,10)
end