09 Dec Funcion de sumar y restar dos numeros en ruby con clases y rspec
Hola que tal, en este tutorial vamos a realizar un ejercicio muy pero muy basico, el cual consta de hacer una clase para sumar y restar y hacerlo con pruebas utilizando rspec.
Para empezar lo primero que tenemos que hacer es crear nuestro archivo Gemfile para poder utilizar la gema de rspec con ruby para ello el contenido es el siguiente:
Archivo Gemfile
source :gemcutter #source :rubygems gem 'rspec'
En el archivo anterior podemos usar cualquiera de los repositorios que deseemos, y tenemos que ejecutar el siguiente comando en nuestra linea de comandos (debemos estar ubicados en raiz de nuestro proyecto donde se encuentra el archivo Gemfile)
$ bundle install
Despues de eso podemos crear nuestro archivo el cual podemos nombrar como quieramos, como es muy simple el ejercicio vamos a colocar nuestra clase y nuestra prueba en el mismo archivo, en caso de que tengan dudas de como hacerlo separado dejen sus comentario y con gusto lo explico como hacerlo en codigos separados.
Para empezar debemos de crear nuestra prueba para que nos pida que creemos nuestra clase calculadora el codigo necesario para hacer eso es:
contenido de calculadora.rb
require 'rspec' describe Calculadora do end
Despues corremos nuestra prueba con el siguiente comando desde consola
$ bundle exec rspec calculadora.rb
Ahora podremos que ver que nos muestra el error de
uninitialized constant Calculadora (NameError)
Para lo cual declaramos nuestra clase calculadora dentro del archivo
class Calculadora end
Si volvemos a correr nuestra prueba podremos ver el siguiente resultado
No examples found. Finished in 0.00008 seconds 0 examples, 0 failures
Despues de eso ahora toca nuestra prueba para hacer la suma la cual declaramos y queda de la sigueinte manera:
let(:calculadora){Calculadora.new} it "#suma" do calculadora.suma(10, 20).should eq(30) end
Lo cual al correr nuestra prueba nos va a mostrar el siguiente error
undefined local variable or method `suma'
para lo cual lo declaramos y colocamos la suficiente logica para que nos regrese la suma de dos numeros el codigo necesario para satisfacer esta prueba es el siguiente:
def suma number1, number2 number1 + number2 end
Ahora si corremos nuestra prueba nuevamente podremos verla en verde, y en general esa es la logica para usar TDD con rspec y ruby a continuacion dejo todo el ejercicio completo de la suma y la resta, saludos.
require 'rspec' class Calculadora def suma number1, number2 number1 + number2 end def resta number1, number2 number1 - number2 end end describe Calculadora do let(:calculadora){Calculadora.new} it "#suma" do calculator.suma(10, 20).should eq(30) end it '#resta' do calculadora.resta(10,5).should eq(5) end end
cristian
Posted at 04:11h, 23 Septemberque buen aporte amigo me sirvio de mucho