Iva*_*tos 5 api rspec ruby-on-rails request http-delete
我开始用这种方式:
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
Run Code Online (Sandbox Code Playgroud)
我不确定是否是测试API请求删除数据的最佳方法.
小智 5
到目前为止,您的测试确保:
这个测试比删除请求要多得多,但我认为没问题.最好是进行这种测试然后没有.
我要做的是改进这个测试,就是在测试时拆分路线.我将进行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),YAML.load(category2.to_json),])
end
end
describe "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
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10012 次 |
| 最近记录: |