【发布时间】:2014-09-19 15:20:15
【问题描述】:
我尝试使用 minitest-rails 并结合这些技术来测试我的控制器问题:
http://ridingtheclutch.com/post/55701769414/testing-controller-concerns-in-rails.
Anonymous controller in Minitest w/ Rails
我得到“没有路线匹配错误”: ActionController::UrlGenerationError: 没有路由匹配 {:action=>"index", :controller=>"fake"}
require "test_helper"
require "warden_mock"
class FakeController < ApplicationController
attr_accessor :request
def initialize(method_name=nil, &method_body)
include MyConcern # method redirect_to_404 placed here
@request = OpenStruct.new # mockup request
@request.env = {}
@request.env['warden'] = WardenMock.new # mockup warden
if method_name and block_given? # dynamically define action for concern methods testing
self.class.send(:define_method, method_name, method_body)
test_routes = Proc.new do
resources :fake
end
Rails.application.routes.eval_block(test_routes)
end
end
end
describe FakeController do # just very simple test
context "just redirect_to_404" do
it "it must redirect to /404" do
@controller = FakeController.new(:index) { redirect_to_404 }
get :index
assert_redirected_to '/404'
end
end
end
我有 rails 4.1.5 和 minitest 5.4.0
【问题讨论】:
标签: ruby-on-rails ruby testing rspec minitest