【发布时间】:2015-06-18 18:50:32
【问题描述】:
我正在使用 rspec 和 factory_girl 测试我的 rails 控制器
如果属性无效,我的操作会返回带有 412 状态的 json 格式的错误消息
format.json{render json: user.errors.messages, status: 412}
喜欢这个
当我尝试测试功能时
let(:invalid_attributes){
FactoryGirl.attributes_for(:user,password: "password")
}
it "returns error if invalid attributes" do
post :create,{user: invalid_attributes},valid_session
expect(response).to have_status(412)
end
我收到此错误
Failure/Error: expect(response).to have_status(412)
expected #<ActionController::TestResponse:0x00000006f4cc10> to respond to `has_status?`
如果我尝试这样测试
it "returns error if invalid attributes" do
user = FactoryGirl.build(:user,invalid_attributes)
post :create,{user: invalid_attributes},valid_session
expect(response.body).to eq(user.errors.messages.to_json)
end
我收到此错误
Failure/Error: expect(response.body).to eq(user.errors.messages.to_json)
expected: "{}"
got: "{\"password_confirmation\":[\"doesn't match Password\",\"doesn't match Password\"],\"password\":[\"Password must contain 1 Uppercase alphabet 1 lowercase alphabet 1 digit and minimum 8 charecters\"]}"
有什么问题?提前谢谢
【问题讨论】:
标签: ruby-on-rails ruby rspec factory-bot