переменные сеанса Ruby
-
20-09-2019 - |
Вопрос
Я пытаюсь написать базовый тест утверждения:
def assert_session_has ( sessionvar )
return assert_not_nil session[:sessionvar]
end
когда я компилирую:
def test_auth_bob
#some setup and other validation methods
assert_not_nil session[user]
#more validations...
end
Я получаю следующую ошибку:
test_auth_bob(UserControllerTest):
NameError: undefined local variable or method `user' for #<UserControllerTest:0x3460c28>
/test/functional/user_controller_test.rb:23:in `test_auth_bob'
Есть идеи?
Решение
Вы потеряли двоеточие.Как бы больно это ни звучало, некоторые люди даже этого не замечают.
def test_auth_bob
#some setup and other validation methods
assert_not_nil session[:user]
#more validations...
end
Без :user относится к переменной или методу, а двоеточие user обозначает символ :user. Этот пост в Интернете о символах кажется, объясняет больше… но я не читал.Меня отвлекает от компьютера захватывающий, но медленный эпизод «Прослушки».Это хорошо.
Другие советы
Где вы заявляете user
в вашей test_auth_bob
функция?Интерпретатор жалуется, что символ не определен.
Не связан с StackOverflow