我有一个Rails API应用程序,它非常庞大,并且有很多端点供用户访问数据。
我不确定如何创建将由每个开发人员执行的测试,以便生产中的错误很少。
每个API都根据其角色对不同类型的用户进行身份验证,并在其上呈现不同的JSON。
答案 0 :(得分:2)
首先,我认为你需要定义你需要测试的内容,例如
您说每个API都根据其角色对不同的用户进行身份验证,那么您如何对此用户进行身份验证?基本身份验证,身份验证令牌?
让我们创建一个计划
首先测试终点的状态代码
200: OK - Basically self-explanitory, the request went okay.
401: Unauthorized - Authentication credentials were invalid.
403: Forbidden
- The resource requested is not accessible - in a Rails app, this would generally be based on permissions.
404: Not Found - The resource doesn’t exist on the server.
在此之后,您可以开始检查请求的响应正文GET
,POST
,PUT
,DELETE
,并检查您对回复的期望内容是否为右。
然后为您的API编写一些集成测试
您可以使用RSpec
与FactoryGirl
等框架相结合,更轻松地为您的api编写集成测试
# spec/api/v1/user_spec.rb
describe "sample API" do
it 'should return a valid user' do
user = FactoryGirl.create(:user)
get "/api/v1/user/#{user.id}"
# test for the 200 status-code
expect(response).to be_success
# check that the message attributes are the same.
expect(json['name']).to eq(user.name)
end
end
希望它给你一些指示