ruby-on-rails – 如何通过rspec测试在控制器中更新的会话变量
发布时间:2020-12-16 22:28:07 所属栏目:百科 来源:网络整理
导读:我正在使用rspec来编写一个测试,测试会话变量是否正确更改: 这是我要测试的GamesController的一部分: def change_player if session[:player] == 0 session[:player] = 1 else session[:player] = 0 end end 这是我的game_spec.rb文件: require "spec_hel
|
我正在使用rspec来编写一个测试,测试会话变量是否正确更改:
这是我要测试的GamesController的一部分: def change_player
if session[:player] == 0
session[:player] = 1
else
session[:player] = 0
end
end
这是我的game_spec.rb文件: require "spec_helper"
describe GamesController do
describe "#change_player" do
it "should change player to 1" do
session[:player] = 0
get :change_player
assigns(session[:player]).should == 1
end
end
end
这是我运行测试时得到的错误消息: Failures:
1) GamesController#change_player should set player to 0
Failure/Error: session[:player] = 0
NameError:
undefined local variable or method `session' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x00000103b3b0d8>
# ./spec/features/game_spec.rb:6:in `block (3 levels) in <top (required)>'
Finished in 0.01709 seconds
1 example,1 failure
Failed examples:
rspec ./spec/features/game_spec.rb:5 # GamesController#change_player should set player to 0
谢谢 解决方法
问题是rspec不知道这是一个控制器测试(不在spec / controllers文件夹中)
你需要指定 describe GamesController,:type => :controller do
...
end
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
