run rails matchers ruby-on-rails-3 rspec minitest

ruby on rails 3 - matchers - Controlador anónimo en Minitest w/Rails



rspec rails 5 (2)

No creo que los controladores anónimos sean compatibles. En lugar de usar un DSL para crear un controlador, intente definir un controlador en su prueba.

class SlugTestController < ApplicationController def index render nothing: true end end describe SlugTestController do it "should catch bad slugs" do get :index, slug: "bad%20slug" response.code.must_equal "403" end end

Al convertir de RSpec a Minitest me encontré con un pequeño problema que Google no me ayudó con un solo paso, y eso es averiguar cómo hacer algo como esto:

describe ApplicationController do controller do def index render nothing: true end end it "should catch bad slugs" do get :index, slug: "bad%20slug" response.code.should eq("403") end end

con Minitest. ¿Hay alguna manera de crear controladores anónimos como este dentro de Minitest o hay documentación que pueda ayudarme a aprender a probar los controladores con minitest?


Puedes hacer algo como eso:

# Add at runtime an action to ApplicationController ApplicationController.class_eval do def any_action render :nothing end end # If disable_clear_and_finalize is set to true, Rails will not clear other routes when calling again the draw method. Look at the source code at: http://apidock.com/rails/v4.0.2/ActionDispatch/Routing/RouteSet/draw Rails.application.routes.disable_clear_and_finalize = true # Create a new route for our new action Rails.application.routes.draw do get ''any_action'' => ''application#any_action'' end # Test class ApplicationControllerTest < ActionController::TestCase should ''do something'' do get :any_action assert ''something'' end end