tests test rails how ruby-on-rails ruby unit-testing

ruby on rails - test - ¿Cuál es la mejor manera de comenzar las pruebas unitarias y funcionales de un sitio web de Ruby Rails?



rails test methods (5)

Parece que ya ha escrito su aplicación, por lo que no estoy seguro de que obtenga una gran ventaja de usar RSpec sobre Test::Unit .

De todos modos, independientemente de cuál elija, rápidamente se encontrará con otro problema: administrar dispositivos y burlas (es decir, los "datos" de prueba). Así que eche un vistazo a Shoulda y Factory Girl .

Estoy probando un sitio web de Ruby Rails y quería comenzar con las pruebas unitarias y funcionales.


Incluso si la aplicación ya está escrita, recomendaría usar RSpec sobre Test :: Unit por el simple hecho de que ninguna aplicación se termina alguna vez. Tendrá que agregar funciones y código de refactorización. Obtener el hábito de prueba correcto desde el principio ayudará a que estas alteraciones sean menos dolorosas


También puede probar la interfaz web con un complemento de Firefox como http://selenium.openqa.org/

Grabará los clics y la entrada de texto y luego reproducirá y revisará la página para ver los elementos de visualización correctos.


Cucumber y RSpec merecen un vistazo. Fomentan las pruebas en un estilo basado en el comportamiento y basado en ejemplos.

RSpec es una biblioteca para pruebas a nivel de unidad:

describe "hello_world" it "should say hello to the world" do # RSpec comes with its own mock-object framework built in, # though it lets you use others if you prefer world = mock("World", :population => 6e9) world.should_receive(:hello) hello_world(world) end end

Tiene soporte especial para Rails (por ejemplo, puede probar modelos, vistas y controladores de forma aislada) y puede reemplazar los mecanismos de prueba incorporados en Rails.

Cucumber (anteriormente conocido como RSpec Story Runner) le permite escribir pruebas de aceptación de alto nivel en inglés (bastante) sencillo que podría mostrar (y acordar) con un cliente y luego ejecutarlas:

Story: Commenting on articles As a visitor to the blog I want to post comments on articles So that I can have my 15 minutes of fame Scenario: Post a new comment Given I am viewing an article When I add a comment "Me too!" And I fill in the CAPTCHA correctly Then I should see a comment "Me too!"


Mi recomendación es (en serio) pasar por alto la unidad incorporada en los rieles / las pruebas funcionales, e ir directamente a RSpec .

El material incorporado en los rieles utiliza el marco Test::Unit que se envía con ruby, y que es más o menos un puerto directo de JUnit / NUnit / AnyOtherUnit.
Encontré que estos marcos son bastante tediosos y molestos, lo que conduce a una apatía general acerca de las pruebas de unidad de escritura, que obviamente no es lo que estás tratando de lograr aquí.

RSpec es una bestia diferente, centrada en describir lo que su código debería hacer, en lugar de afirmar lo que ya hace . Cambiará la forma de ver las pruebas, y te divertirás muchísimo haciéndolo.

Si me parece fanboy, es solo porque realmente creo que RSpec es tan bueno. Pasé de estar molesto y cansado de la unidad / pruebas funcionales, a un creyente firme en él, más o menos únicamente por rspec.