• Inspiración
  • Tutoriales
  • Bootcamp

En1Mes

  • Inspiración
  • Tutoriales
  • Bootcamp

Evita errores de novato haciendo testing con rspec

testing rspec
Cosas que pasan cuando uno no hace testing

Cosas que pasan cuando uno no hace testing

Es normal cuando se hacen cambios en el código romper alguna funcionalidad del sitio, o en el peor de los casos que no funcione totalmente.

Para eso existe una gema llamada rspec que nos va a ayudar a revisar de forma automática que todas las páginas se encuentre funcionando.

Para evitar este tipo de errores existe Rspec, una herramienta de testing automatizado

Agrega la gema de rspec al gemfile

gem "rspec-rails", :group => [:development, :test]

Luego desde el terminal, dentro de la carpeta de tu proyecto corre la línea

rails generate rspec:install

Sabremos que todo está OK cuando al correr en el terminal la siguiente línea de código:

  rake spec

obtengamos algo así como:
/Users/gonzalosanchez/.rvm/rubies/ruby-2.0.0-p353/bin/ruby -S rspec
No examples found.

Ahora vamos a crear los archivos para hacer testing, estos archivos contienen todas las pruebas que vamos automatizar, como por ejemplo que la página de inicio funcione bien.

Primero creemos los archivos que necesita rspec automáticamente la siguiente linea.

  rails generate rspec:controller pages

Importante, donde dice pages tu deberías ocupar el nombre de uno de tus controller, para empezar ojalá el que sirva la página de inicio.

Ahora, dentro de la carpeta spec se va haber generado una carpeta controllers, y dentro de ésta se encuentra el archivo pages_controller_spec (u otro nombre dependiendo de si es otro el controller). En ese archivo deberíamos poner lo siguiente.

require 'spec_helper'

describe PagesController do
  describe "GET home" do
  	it "has a 200 status code" do
		get :home
		expect(response.status).to eq(200)
	end
  end
end
¿Cómo funciona?

En rspec uno define una prueba, en este caso ir al home, la prueba que se hará consiste en obtener un status 200, que en términos de códigos de errores de la web eso significa éxito.

Luego dentro va la prueba, que dice:
al ir a home (el cual es el método que se llama dentro del controller pages cuando se va a la página de inicio) espera un resultado de 200. O sea que la página funciona.

¿Como corro las pruebas?

Finalmente escribiendo rake spec en la consola te dirá si la página funciona o si tiene un error. Obtendrás un punto por cada éxito y una f por cada prueba que falla.

Creando una segundo caso para hacer testing

Si tenemos una segunda página, podemos hacer una segunda prueba y correr ambas simultáneamente.

Por ejemplo en el caso de la página de En1mes hay una sub página llamada casos de éxito, el controller pages sirve tanto la página de home y la casos.

Por lo que el código del pages_controller_spec debería quedar así:

require 'spec_helper'

describe PagesController do
  describe "GET home" do
  	it "has a 200 status code" do
		get :home
		expect(response.status).to eq(200)
	end
  end

  describe "GET casos" do
  	it "has a 200 status code" do
		get :casos
		expect(response.status).to eq(200)
	end
  end

end

Como mínimo un sitio web debería tener automatizada esta prueba para cada una de sus páginas pues de esta forma te aseguras de que si rompes el controller o la vista te darás cuenta antes de que una de tus visitas o clientes se encuentre con la sorpresa de que el sitio no funciona.

Recuerda que siempre deberías hacer testing corriendo rspec antes de subir los cambios a un servidor para evitar errores innecesarios.

Jan 31, 2014Gonzalo Sánchez
Summary
Evita errores de novato haciendo testing con rspec
Article Name
Evita errores de novato haciendo testing con rspec
Description
Es fácil romper alguna parte del sitio cuando haces cambio, revisar todo a mano demora tiempo, para eso existen herramientas de Testing automatizado.
Author
Gonzalo Sánchez
Share Button
  • El Autor
  • Últimos Posts

About Gonzalo Sánchez

Emprendedor lean, Ingeniero civil informático dedicado al desarrollo de una mejor web con ruby on rails. Fanático de los números y las métricas y por sobre todo fundador de en1mes.
  • Mostbet guncel giris: en guncel bahis secenekleri - May 8, 2025
  • Mostbet Casino: Your Oasis of Gaming Pleasure, Always - May 6, 2025
  • Bahis ve emsallar Most Bet ile - May 6, 2025
  • Mostbet Resmi Sitesi: Bahis Severlerin Tercihi - May 3, 2025
  • MostBet Rehberi: Bahis Dunyasinda Basariya Ulasmanin Yollari - May 2, 2025
  • Basarili Bir Bahis Deneyimi Icin Ipuclari Most bet Platformunda - April 30, 2025
  • Mostbet Giris 2025: Bahis Stratejileri ve Taktikler - April 28, 2025
  • Bahis Dunyasinda Guvende Kalmanin Yollari Mostbet ile - April 25, 2025
  • Mostbet yeni giris adresi olarak sadece internet sitesi - April 23, 2025
  • Bahis Dunyasinda MostBet ile Guvenli Adimlar Atin - April 22, 2025
11 years ago 4 Comments uncategorized6,546
Nitrous, rails en la nubeRails vs PHP
You Might Also Like
 
720 Credit rating: Could it possibly be A good otherwise Crappy? – Experian (2022)
 
15 Gründen, warum Sie sollten Datum ein Coach
Comments: 4
  1. Manuel
    11 years ago

    Agregé "gem "rspec-rails", :group => [:development, :test] " al gemfile de mi app y me dio el sgte resultado cuando intente instalarla con rails generate rspec:install...

    Could not find gem 'rspec-rails (>= 0) x86-mingw32' in the gems available on thi
    s machine.

    NO entender porq me paso eso D:

    ReplyCancel
    • Gonzalo Sánchez
      11 years ago

      Es por ese tipo de cosas que uno nunca debe programar en Windows, si realmente necesitas ocuparlo te sugiero que ocupes Nitrous.IO, una plataforma que te permite codear en linea.

      ReplyCancel
    • Erick Navarro
      11 years ago

      Nitrous.io es muy fácil de usar y además te permite hacer pair programming sin instalar nada

      ReplyCancel
    • Erick Navarro
      11 years ago

      Casi se me olvida, la ventaja de Nitrous en contra de Windows es que es un ambiente de desarrollo estable, por lo no tendrás los problemas que estás teniendo con tu maquina, alguien ya se encargó de que sea llegar y crear un proyecto

      ReplyCancel

Leave a Reply Cancel reply

Tags
mostbetslotticamostbet UZslottica PLRuby on Railsaviatoraviator KZozwincasinoozwincasino AUemprendimientos digitalesfortunetiger BRfortunetigerTutorialesDiseñoLondonLondon UZbj88slottica BRHerramientashtml5Wordpressrubygratogana juegos en vivoBases de datosgratogana onlineparty poker casinoแทงบอลออนไลน์Landing Pageหวยออนไลน์gratogana entrar20bet plkudos casino no deposit bonus 2024kudos casino loginTallereshackathonInspiraciónpartycasino entrarHeroku1win AZ1winTipsPáginas WebNitrouskudos casino no deposit bonuswash service
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • Interesado en otros tipos de emprendimiento?

    Quieres aprender a importar y exportar productos a todo el mundo? entra aquí

  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • No te pierdas ningún artículo.

  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • 2016 © En 1 Mes