我的 MacBook Pro 最近死了,我买了一台新的,恢复了上面的所有文件,然后又回到了我已经开发了很长时间的 rails 应用程序。
在那里的某个地方,我移动了保存应用程序的目录(以及 Aptana Studio 3 项目,尽管我猜这不相关)。该应用程序现在运行,但我所有的功能测试都崩溃了,因为它认为变量“会话”是未定义的。这是我的测试用例代码的简化版本:
require 'test_helper'
class SkillsControllerTest < ActionController::TestCase
...
test "should not copy when current user does not have write permission" do
session[:user] = users(:existingbob)
assert_no_difference("Skill.count") do
post :create, :campaign_id => 1, :skill_uri => {:campaign_id => 1, :skill_id => 1}
end
assert_redirected_to permissions_path()
end
...
end
我做了很多这样的工作,我的应用程序检查用户是否有权执行特定操作,并且我有很多测试来检查它是否正常工作。
在我的剧变之后,测试崩溃并显示以下消息:
/blah/blah/blah/skills_controller_test.rb:260:in`<class:SkillsControllerTest>':
undefined local variable or method `session' for SkillsControllerTest:Class (NameError)
这一切都可以正常工作,从我从文档中可以看出,它仍然应该可以正常工作。我想我以某种方式配置错误,但坦率地说,我什至不知道从哪里开始寻找。
怎么了?我应该去哪里看?