У меня есть старый плагин pre-Rails 3, тесты которого больше не будут работать под Rails 3. Тест выглядит примерно так:
class TestController < ActionController::Base
def test_action; render :nothing => true; end
end
TestController.view_paths = [File.dirname(__FILE__)]
ActionController::Routing::Routes.draw {|m| m.connect ':controller/:action/:id' }
class TestControllerTest < ActionController::TestCase
context "test_action" do
should "do something" do
lambda { post :test_action }.should change { Model.count }
end
end
end
Запуск этого теста заставляет меня:
неинициализированная константа ActionDispatch :: Routing :: Routes (NameError)
Когда я использую with_routing, который, как я думал, был новым способом выполнения тестовой маршрутизации, например, так:
should "do something" do
with_routing do |set|
set.draw { |m| m.connect ':controller/:action/:id' }
lambda { post :test_action }.should change { Model.count }
end
end
Я получаю:
NameError: неопределенная локальная переменная или метод `_routes 'для TestController: Class
Чего мне не хватает?Мой помощник по тестированию требует:
require 'rubygems'
require 'active_record'
require 'active_record/version'
require 'active_record/fixtures'
require 'action_controller'
require 'action_dispatch'
require 'action_view'
require 'test/unit'
require 'shoulda'
require 'mocha'
Идеи?Спасибо!