我正在尝试为发送POST请求且参数“ target”必须在0到10之间的方法编写测试套件
我的Ruby类:
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还是很陌生。
答案 0 :(得分:0)
params[:target]
是一个字符串,在比较之前转换为整数,
def must_have_valid_target
params[:target].present? && params[:target].to_i.between?(0,10)
end