Qual é a diferença conceitual entre as especificações de recursos do Rspec e as especificações de solicitação ?
Dos documentos de especificações de recursos:
As especificações de recursos são testes de alto nível destinados a exercitar fatias de funcionalidade por meio de um aplicativo. Eles devem conduzir o aplicativo apenas por meio de sua interface externa, geralmente páginas da web.
E para especificações de solicitação:
As especificações de solicitação fornecem um wrapper fino em torno dos testes de integração do Rails e são projetadas para conduzir o comportamento por meio da pilha completa, incluindo roteamento (fornecido pelo Rails) e sem stubbing (você decide). Com as especificações de solicitação, você pode:
- especificar um único pedido
- especificar vários pedidos em vários controladores
- especificar vários pedidos em várias sessões
Eu sei que as especificações de recursos usam Capybara e as especificações de solicitação não. Mas isso dificilmente merece conceitos diferentes.
fonte
"GET /login"
bloco com expectativas emit
blocos, comoexpect(response.status).to eq(200)
eexpect(response).to render_template(:new)
, ou em umdescribe "POST /sessions"
, umcontext "with valid credentials"
bloco, comexpect(response).to redirect_to(user)
efollow_redirect!; expect(response.body).to include("Signed in")
visit users_path
) ou strings codificadas (visit '/users'
) ?. Pessoalmente, prefiro não usar nenhuma parte interna do aplicativo nesse tipo de especificação.