describe "DELETE /v1/categorIEs/{ID}" do before(:each) do # Login User/Token end it 'deletes a category' do category = Fabricate(:category) category2 = Fabricate(:category) get "/v1/categorIEs" expect(response.status).to eq 200 expect(JsON.parse(response.body)).to eq([YAML.load(category.to_Json),YAML.load(category2.to_Json),]) delete "/v1/categorIEs/#{category.ID}" expect(response.status).to eq 200 get "/v1/categorIEs" expect(JsON.parse(response.body)).to eq([YAML.load(category2.to_Json)]) end end解决方法 到目前为止,您的测试确保:
>删除前获取请求的响应
> get请求的状态代码
>删除请求的响应
>删除请求的状态代码
>删除后获取请求的响应
> get请求的状态代码
这个测试比删除请求要多得多,但我认为没问题.最好是进行这种测试然后没有.
我要做的是改进这个测试,那就是在测试时拆分路线.
我将进行1次测试以确保索引路由按预期工作
1测试以确保删除路由正常工作.这样,索引路径上的错误不会破坏您的删除规范. =)
我会有这样的事情:
describe "GET /v1/categorIEs" do before(:each) do # Login User/Token category = Fabricate(:category) category2 = Fabricate(:category) get "/v1/categorIEs" end it 'should return status 200' do expect(response.status).to eq 200 end it 'List all categorIEs' do expect(JsON.parse(response.body)).to eq([YAML.load(category.to_Json),]) endenddescribe "DELETE /v1/categorIEs/:category_ID" do before(:each) do # Login User/Token category = Fabricate(:category) category2 = Fabricate(:category) delete "/v1/categorIEs/#{category.ID}" end it 'should return status 200' do expect(response.status).to eq 200 end it 'should delete the category' do expect(category.all).to eq category2 endend总结
以上是内存溢出为你收集整理的ruby-on-rails – 使用Rspec测试DELETE请求的最佳方法?全部内容,希望文章能够帮你解决ruby-on-rails – 使用Rspec测试DELETE请求的最佳方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)