我有rails微服务应用程序我想写测试用例,我想有建议
注意:我的应用程序具有聊天,预订,付款等功能
答案 0 :(得分:1)
嗯,首先。您应该了解API它只是一个控制器。因此,您只需检查您的api的动作是否做正确的事(crud或任何其他事情)并返回适当的字段。将这个'东西'移动到某个命令(这是一个模式)要好得多,例如像this这样的宝石。
在这种情况下,您的测试将更容易支持/维护。因为在“控制器”规范中,您只需检查您的响应内容。对于“正确的行动”(例如创建记录)将响应您的命令。 因此,最后您将对命令和控制器进行测试。您的控制器规范将仅检查序列化程序返回的值的存在(例如AMS)。
使用命令,所有控制器将如下所示:
def action
data = SomeImportantCommand.new(param1: params[:user], param2: param[:form]).call
respond_with data, serializer: Api::V1::SomeEpicSerializer
end
这是伪代码,但它显示了命令用法的概念。
这种方法比较复杂,但它有优势。
控制器的所有规格如下:
it 'returns some json' do
get '/api/v1/users'
expect(response.status).to eq 200
expect(response.body).to have_node(:name).with('Ivan')
# check other fields if you want
end
在上面的代码api_matchers中,gem用于解析json响应。
P.S。你还需要对模型进行测试,但这是普通的事情,对于API来说没什么特别的。