Testes de sistema: Capybara
O curso explica o que é um system spec no Rails e como o Capybara o conduz. Trata da tag type: :system e da DSL do Capybara para visitar páginas, preencher formulários e checar o conteúdo. Lê o suporte a system specs que o rspec-rails já traz neste app. Compara o driver rack_test com as variantes do Selenium que rodam JavaScript. Estuda a lista de senha do cadastro, que só um spec com JavaScript consegue checar. Revisa ainda o que os request specs provam e o que não alcançam.
O que você vai aprender
- ✓O que são specs type: :system e como diferem dos request specs
- ✓A DSL do Capybara para visitar páginas, preencher formulários e checar o conteúdo
- ✓O suporte a system specs que já vem no rspec-rails
- ✓O driver rack_test e por que ele não roda JavaScript
- ✓Os drivers do Selenium que rodam JavaScript e como escolher um com driven_by
- ✓Como identificar comportamento do cliente que só um spec com JavaScript consegue checar
O que uma spec de sistema de fato é
Este app tem dezenas de arquivos de request spec em spec/requests/, com algumas centenas de exemplos entre eles. O spec/requests/auth_spec.rb envia parâmetros de formulário para auth_sign_up_path e checa expect(response).to redirect_to(new_auth_two_factor_setup_path). Isso prova que o servidor…
Ler a aula completa grátis →Currículo
7 aulasO que uma spec de sistema de fato é
Mostra o que system specs acrescentam aos request specs e apresenta a DSL do Capybara para navegação, formulários e afirmações.
O rspec-rails já traz o encanamento, na gem instalada neste app
Lê o suporte a system specs da gem rspec-rails instalada e mostra por que o spec padrão pede selenium-webdriver.
rack_test: o driver padrão e rápido do Capybara, sem JavaScript
Apresenta o rack_test, driver padrão do Capybara em Ruby puro, que funciona pelo Rack e não roda JavaScript.
Os drivers com JavaScript: as variantes do Selenium
Trata dos quatro drivers Selenium pré-registrados, do padrão Chrome headless do rspec-rails e de como escolher um driver.
Uma view movida a JavaScript neste app: a lista de senha do cadastro
Analisa o controller Stimulus de força de senha do cadastro e esboça um system spec que checa as classes alteradas.
O que os request specs deste app já cobrem, e a camada acima deles
Revisa o que os request specs do app provam no servidor e o comportamento do cliente que eles não alcançam.
Juntando tudo: o kit, a lacuna, e para onde a cobertura vai a seguir
Resume o kit e a lacuna: o app não tem nenhum system spec nem gem de driver com JavaScript.