2009-08-31 135 views
0

我想寫基本斷言測試:紅寶石會話變量

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' 

任何想法?

回答

1

你失去了一個冒號。儘管聽起來很痛苦,但有些人甚至沒有注意到。

def test_auth_bob 
    #some setup and other validation methods 
    assert_not_nil session[:user] 
    #more validations... 
end 

如果沒有:用戶引用一個變量或方法,冒號用戶是符號:用戶。 This post on the internet about symbols似乎解釋更多......但我沒有讀過它。我正在通過The Wire的一個令人興奮但緩慢移動的情節從計算機中遠離。這很好。

2

你在哪裏聲明user在你的test_auth_bob函數中?解釋者抱怨該符號未定義。

+0

第23行是assert_not_nil調用。我知道這是這條線,因爲如果我把它評論出來,測試函數的其餘部分就沒有問題。 – cbrulak 2009-08-31 19:06:56

+1

刪除我的評論,因爲我看到錯誤消息中的哪一行是23。 – theIV 2009-08-31 19:50:42

+0

它不會抱怨test_auth_bob函數 – cbrulak 2009-08-31 20:43:10