DEV Community

Alexandre
Alexandre

Posted on

Testando routes em RSpec Rails

Bem, eu estava pensando que realmente vale a pena fazer esse post, tipo, é algo tão simples, mas tão simples que basta eu mostrar o código que você já entenderia o que está acontecendo.

Mas um certo alguém falou, "Melhor um código testado, por mais que seja bobo", e concordo com ele, vai que acontece algo imprevisível por esse motivo bobo?

Mas eu só vou mostrar o código e explicar o que esse código faz e pronto, só isso, porque não tem muito explicar, se você não entendeu, então prova que está faltando conhecimento em rotas em rails.

Se você quer saber mais de rotas, basta ler a documentação oficial do rails que tem português, aqui está o link, Rotas do Rails de Fora pra Dentro

Bem, aqui está o código.

require "rails_helper"

RSpec.describe "rotas para Produtos", :type => :routing do
  let(:produto) { Produto.create(name: "colar") }

  it "rotas /produtos para action index de controller Produtos" do
    expect(get("/produtos")).
      to route_to(:controller => "produtos", :action => "index")
  end

  it "rotas /produtos/:id para action show de controller Produtos" do
    expect(get("/produtos/#{produto.id}")).
      to route_to(:controller => "produtos", :action => "show", id: produto.id)
  end

  it "rotas /produtos/new para action new de controller Produtos" do
    expect(get("/produtos/new")).
      to route_to(:controller => "produtos", :action => "new")
  end

  it "rotas /produtos/:id/edit para action edit de controller Produtos" do
    expect(get("/produtos/#{produto.id}/edit")).
      to route_to(:controller => "produtos", :action => "edit", id: produto.id)
  end

  it "rotas /produtos para action create de controller Produtos" do
    expect(post("/produtos")).
      to route_to(:controller => "produtos", :action => "create")
  end

  it "rotas /produtos para action update de controller Produtos" do
    expect(put("/produtos/#{produto.id}")).
      to route_to(:controller => "produtos", :action => "update", id: produto.id)
  end

  it "rotas /produtos para action delete de controller Produtos" do
    expect(delete("/produtos/#{produto.id}")).
      to route_to(:controller => "produtos", :action => "destroy", id: produto.id)
  end
end
Enter fullscreen mode Exit fullscreen mode

Bem, como que eu explico isso.

Serio, eu não sei como que explicar algo obvio.

Eu vou acabar aqui, justamente por isso, então se tiver algumas dúvidas, pode colocar no cometário, que eu vou responder e quem sabe eu coloco a resposta nessa postagem.

Então é isso, tchau!

Top comments (0)