Funcion de sumar y restar dos numeros en ruby con clases y rspec

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
1 Comment

Post A Comment