Estoy confundido con los términos Pepino, Carpincho y RSpec. ¿Cuál de estos debo elegir en mi nueva aplicación Rails?

Hacen cosas diferentes:

El pepino es un lenguaje de dominio específico (DSL) para las pruebas de “Pruebas de aceptación”. Por ejemplo, querer tener una prueba para cubrir lo que el usuario realmente experimenta en una página determinada. [RSpec puede hacer esto con sus especificaciones de características] Una ventaja de Cucumber es que las pruebas se leen en una forma muy sencilla en inglés y se pueden escribir de manera similar.

Capybara es un DSL que proporciona un navegador web simulado para usar con sus pruebas como gema complementaria. Lo uso con RSpec; ¿ Creo que también podrías usarlo con Pepino? Capybara le permite atravesar fácilmente el HTML (ya sea con XPath o con sus métodos nativos) en una respuesta para ver si se está procesando de la manera que desee.

RSpec es un conjunto de pruebas, como MiniTest o TestUnit. Le permite realizar pruebas de Unidad (modelo), Funcional (controlador) y Característica (vistas). Este es mi conjunto de pruebas favorito, pero muchas personas prefieren MiniTest (el conjunto de pruebas predeterminado en una aplicación Rails). Si utiliza el indicador de línea de comando --format=documentation en su spec_helper, el resumen de la prueba se mostrará de una manera muy “amigable para la administración”.

Cuando construyo una aplicación, mi suite de prueba generalmente usa estas gemas:

  • rspec
  • carpincho
  • poltergeist (para cuando una especificación de características requiere que JavaScript esté funcionando)
  • factorygirl (para generar fácilmente instancias de modelos)

Utilizo The Ruby Toolbox para descubrir qué gema quiero usar cuando hay algunas similares. Ruby Toolbox tiene una “calificación de popularidad”: es más probable que las gemas más populares (¡aunque no siempre!) Tengan un mejor soporte o una comunidad más activa. Cucumber tiene una popularidad de 5.44 y RSpec-Rails tiene una popularidad de 12.67. (Carpincho, que puede funcionar con cualquiera de ellos, es 14.96)

Depende de lo que quieras hacer. Debería tener al menos rspec o minitest (minitest es actualmente el predeterminado, creo). Eso es suficiente si su aplicación de rieles es solo una API. Si tiene una vista integrada, por lo que si renderiza también algunos html, el capibara también podría tener sentido. Pepino es una extensión que le permite escribir sus pruebas de carpincho de una manera diferente. Depende de usted si quiere hacerlo de esa manera. Una alternativa al pepino es el filete (cavalle / steak).