MouseOver Studio

MouseOver Studio header image 2

Testando Sinatra com RSpec

June 16th, 2010 por Diego Carrion · 6 comentários

Recentemente a Gonow foi contratada para trabalhar num projeto que já tinha passado por outras duas consultorias com desenvolvedores bastante reconhecidos no mercado nacional. A aplicação foi construída sobre Sinatra e algo que me chamou muito a atenção é que a aplicação não tinha uma linha de teste. Mesmo não sendo uma justificativa, aparentemente não existe nada em português falando sobre como integrar o Sinatra com o RSpec e por isso vou aproveitar para dar uma receita de bolo, de modo que o processo fique mais simples ainda:

* spec/spec_helper.rb:

require File.join(File.dirname(__FILE__), '..', 'main.rb')

require 'spec'
require 'rack/test'

Spec::Runner.configure do |conf|
  conf.include Rack::Test::Methods
end

def app
  Sinatra::Application
end

* spec/main_spec.rb:

require 'spec_helper'

describe Sinatra::Application do
  context "responding to GET /" do
    it "should return status code 200"
      get '/'
      last_response.code.should == 200
    end
  end
end

* Rakefile:

...
require 'spec/rake/spectask'

desc "Run all specs"
Spec::Rake::SpecTask.new do |t|
  t.spec_opts = %w(--format specdoc --color)
end

Tags: Sinatra · bdd · gonow · rspec · tdd

6 respostas ate agora ↓

  • 1 Vinicius B. Fuentes // Jun 16, 2010 at 9:36 pm

    RSpec funciona mto bem com o sinatra… Usei Capybara também, com rack-test, funciona que é uma beleza!

  • 2 PotHix // Jun 16, 2010 at 11:53 pm

    Æ!!

    Funciona muito bem mesmo! :)
    Inclusive, se você estiver usando o Sinatra dentro de uma aplicação Metal no Rails 2.3.x e quiser testar, basta lembrar de alterar para Sinatra::Base ao invés de Sinatra::Application e seguir a mesma linha para os testes, apenas alterando o método app (def app … end ), para instanciar a sua classe ao invés de usar Sinatra::Application diretamente ;)

    Pretendo fazer um post sobre isso em breve.

    Há braços

  • 3 WillianFernandes.com.br » Testando Sinatra com RSpec (dica para que usa Rails Metal) // Jun 17, 2010 at 5:42 pm

    […] ler o post do Diego Carrion sobre como usar RSpec para testar uma aplicação Sinatra, lembrei que tive um problema com os […]

  • 4 PotHix // Jun 17, 2010 at 5:50 pm

    Æ!!

    “Pretendo fazer um post sobre isso em breve.” #FAIL
    Foram mais rápido. :D

    Há braços

  • 5 Diego Carrion // Jun 27, 2010 at 1:58 pm

    Obrigado pelos complementos :)

  • 6 Testando Sinatra com RSpec (dica para quem usa Rails Metal) | Blog Vale // Aug 3, 2010 at 9:39 am

    […] ler o post do Diego Carrion sobre como usar RSpec para testar uma aplicação Sinatra, lembrei que tive um problema com os […]

Deixar um comentário