您好我最近继承了一个项目,其中前开发人员不熟悉rails,并决定将许多重要的逻辑放入视图助手中。如何将Rails助手导入功能测试
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
include BannersHelper
include UsersHelper
include EventsHelper
end
具体会话管理。这是好的,并与应用程序工作,但我有问题编写测试。
一个具体的例子。某些操作会执行before_filter
以查看current_user
是否为管理员。这current_user
通常是由在我们的所有控制器 共享的sessions_helper
方法设定所以,为了正确地测试我们的控制器我需要能够使用此current_user
方法
我已经试过这样:
require 'test_helper'
require File.expand_path('../../../app/helpers/sessions_helper.rb', __FILE__)
class AppsControllerTest < ActionController::TestCase
setup do
@app = apps(:one)
current_user = users(:one)
end
test "should create app" do
assert_difference('App.count') do
post :create, :app => @app.attributes
end
end
要求声明发现session_helper.rb
没问题,但没有Rails的魔法,它不能以相同的方式访问AppsControllerTest
我该如何欺骗这个疯狂的设置来测试?
在AppsControllerTest类中使用'SessionsHelper'并没有帮助?如果您要积极开发此应用程序,我强烈建议您重新编写由他们编写的代码,这没有意义,您将节省时间。这听起来像你只是想让它继续运行,并没有时间去投资。 – Jeremy 2010-11-12 01:07:37
所以看起来像助手正在被包含,因为应用程序控制器在user_helper中调用一个方法,然后在sessions_helper中触发一个错误。所以它好像被包括在内但不能与对方交谈.z – kevzettler 2010-11-12 21:38:58