有一個方法assign_user_rights,它是在rails 3.2.8應用程序的應用程序控制器中定義的。在applications_controller_spec.rb,有一個測試情況下,用於方法:NameError:未定義的局部變量或RSpec中的方法for rails 3.2.8
it "should assign_user_right" do
.....
assign_user_rights
session[:index_all_users].should be_true
end
錯誤:
Failure/Error: assign_user_rights
NameError:
undefined local variable or method `assign_user_rights' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x57550e0>
由於assign_user_rights在應用控制器中定義,它應該是在其spec文件容易可見。然而,我們看到的情況並非如此。代碼有什麼問題?謝謝。
你運行了'rails generate rspec:install'。因此,你是否有一個'spec/spec_helper.rb'文件,內容類似於這個文件:https://gist.github.com/1054053?如果是,請確保方法名稱在兩個地方都是正確的。 –
「由於assign_user_rights是在應用程序控制器中定義的,因此應該在其spec文件中容易看到。」其實,沒有。運行示例的上下文與控制器的上下文完全不同。在這兩種情況下,「自我」並不相同。在rspec中的controller.assign_user_rights作品中爲 –