tipos taxonomia planta pepino pepinillo origen cultivo caracteristicas ruby testing rspec cucumber rspec2

ruby - taxonomia - Rails: ¿Buen uso del ejemplo Rspec2?(También: Pepino, Pepinillo, Capibara)



taxonomia del pepino (1)

Estoy buscando una aplicación de código abierto bastante reciente que use Rspec 2 como biblioteca de prueba. Me gustaría ver cómo un desarrollador experimentado utiliza la biblioteca correctamente para probar la pila completa, ya que tengo dudas constantemente sobre mi propio conocimiento (proveniente de Testunit y en parte debido a la documentación bastante escasa de la última versión de Rspec, incluso aunque se mejora constantemente).

Si un proyecto usara Cucumber, Pickle y / o Capybara junto con Rspec 2, me harías saltar de alegría.

Cualquier punteros?

¡Aclamaciones!


Mis 2 centavos:

Use bistec en lugar de pepino. Es RSpec en su base, es simple y hace el trabajo.

https://github.com/cavalle/steak

Capibara le permite utilizar diferentes controladores. Algunos controladores admiten javascript, se ejecutan con un navegador, más rápido, más lento, etc. Utilice el mejor controlador para la especificación que está probando con Swinger:

https://github.com/jeffkreeftmeijer/swinger

Utilizo mi propio fork de Akephalos - un controlador - que es rápido, soporta javascript, UTF-8 (eso es lo que mi fork agrega) y no necesita un navegador externo.

https://github.com/Nerian/akephalos2

Una buena práctica para RSpec es usar ''Contexto''. Pregúntame si necesitas una aclaración. Además, tome nota del método let . Devuelve lo que devuelve el bloque. Es útil para declarar un objeto simulado dentro y usarlo en las muestras. .

feature "Course" do let(:school) {School.make!} context "Loged in" do before(:each) do switch_to_subdomain(school) end context "In the new course form" do before(:each) do click_link("Courses") click_link("New course") end scenario "New course" do end scenario "A Course without name should not be accepted" do end scenario "A new course should not be created if there is another one with the same name in the same school" do end end end end

Además, el libro: El libro RSpec, de Programadores pragmáticos, es un muy buen recurso para iniciarte sobre los conceptos centrales detrás de RSpec, Capybara, Cucumber y todo lo ágil de desarrollo impulsado por el comportamiento :)

Editar:

Además, uso Machinist2 para los accesorios. https://github.com/notahat/machinist

Funciona genial. Mejor que Factory girl.

También está Fabricator, que tiene un sitio web excelente y un DSL muy útil.

https://github.com/paulelliott/fabrication

Puede utilizar Machinist con Forgery para crear datos inteligentes.

https://github.com/sevenwire/forgery

School.blueprint do name { "Pablo de olavide"} end Student.blueprint do first_name { Forgery::Name.first_name} last_name { Forgery::Name.last_name } school { School.make! } end

Puede combinar esto con una tarea de Thor para poblar su base de datos de desarrollo, para ver la aplicación como lo vería el usuario final.

def populate require File.expand_path(''config/environment.rb'') require File.expand_path(''spec/support/blueprints.rb'') drop puts "populating database" 1.times do |num| school = School.make! 50.times do Student.make!(:school => school) end 5.times do Course.make!(:school => school) Professor.make!(:school => school) end end end

La documentación de RSpec 2 tiene muchos ejemplos:

http://relishapp.com/rspec

Además, este post da muchos otros consejos:

http://eggsonbread.com/2010/03/28/my-rspec-best-practices-and-tips/

Otro post con muy buen consejo:

http://flux88.com/2011/05/dry-up-your-rspec-files-with-subject-let-blocks/

Optimizando el tiempo de ejecución de las pruebas:

http://blog.leshill.org/blog/2011/10/23/fast-specs.html

http://jeffkreeftmeijer.com/2011/spec-helpers-bundler-setup-faster-rails-test-suites/