Concombre vs Capybara

Quelqu’un peut-il expliquer la différence entre ces deux plates-formes? Sont tous deux partie de BDD mais pourquoi devrais-je utiliser l’un ou l’autre, ou les deux ensemble? Merci pour les réponses

Capybara est un outil qui interagit avec un site Web comme le ferait un humain (comme visiter une URL, cliquer sur un lien, taper du texte dans un formulaire et le soumettre). Il est utilisé pour émuler le stream d’un utilisateur via un site Web. Avec Capybara, vous pouvez écrire quelque chose comme ceci:

describe "the signup process", :type => :feature do before :each do User.make(:email => 'user@example.com', :password => 'caplin') end it "signs me in" do visit '/sessions/new' within("#session") do fill_in 'Login', :with => 'user@example.com' fill_in 'Password', :with => 'password' end click_link 'Sign in' page.should have_content 'Success' end end 

Le concombre est un outil pour écrire des tests lisibles par l’homme qui sont mappés dans du code. Avec cela, vous pouvez réécrire l’exemple ci-dessus comme ceci:

 Scenario: Signup process Given a user exists with email "user@example.com" and password "caplin" When I try to login with "user@example.com" and "caplin" Then I should be logged in successfully 

L’interprétation quasi-textuelle est utile pour faire circuler des non-développeurs mais aussi pour que du code y soit associé (les définitions d’étape).

Habituellement, vous utiliserez Capybara si vous testez un site Web et utilisez Cucumber si vous devez partager ces tests avec des non-développeurs. Ces deux conditions sont indépendantes, vous pouvez donc utiliser l’une sans l’autre ou les deux ou aucune.

PS: dans l’extrait de code, il y a aussi du RSpec. Cela est nécessaire parce que Concombre ou Capybara ne peuvent pas tester quelque chose. Ils s’appuient sur RSpec, Test :: Unit ou minitest pour effectuer le travail “Pass or Fail”.

concombre est un outil BDD qui exprime des scénarios de test dans un langage spécifique au domaine, lisible par l’entreprise.

capybara est un outil de test automatisé (souvent utilisé) pour les applications ROR.

Sur la page github de capybara, il y a un exemple d’ utilisation de capybara avec du concombre .

Le concombre est un outil BDD polyvalent. Il ne sait rien des applications Web. Les définitions des étapes du concombre appellent donc Capybara pour tester les applications Web.