Functional Test mit Login

Hallo zusammen,

ich nutze in meiner Anwendung Restful Authentication.
Um einen Functional Test auszuführen muss zunächst ein login
durchgeführtwerden. Habe diesen Artikel im Netz gefunden:
http://alexbrie.net/1526/functional-tests-with-login-in-rails/.

mein test_helper sieht wie folgt aus:

Add more helper methods to be used by all tests here…

def login
puts ‘<<<<<<<< login >>>>>>>>’
old_controller = @controller
@controller = SessionsController.new
post :create, {:login => ‘admin’, :password => ‘admin’}
assert_not_nil(session[:user_id])
@controller = old_controller
end

Der Source im Testfall hat folgende gestallt:

def test_should_get_index
login()
get :index
assert_response :success
assert_not_nil assigns(:dienstrang_people)
end

In der Klasse User die über den Generator des Restful Authentication plugins
generiert wurde gibt es folgende Methode:

Authenticates a user by their login name and unencrypted password.

Returns
the user or nil.
def self.authenticate(login, password)
puts ‘<<<<< authenticate >>>>>>>’
puts login
puts password
u = find_by_login(login) # need to get the salt
puts u.inspect
u && u.authenticated?(password) ? u : nil
end

Obwohl die Zeile
u = find_by_login(login) # need to get the salt
ausgeführt wird und das erzeugte SQL “SELECT * FROM users WHERE
(users.login = ‘admin’) LIMIT 1”

korrekt ist, ist der Wert der Variablen u = nil

Hat da einer Idee warum das so ist.

Danke

Hallo,

Schau dir mal die get methode an.
Get url, params_hash, session

Herzliche
Grüße,Michael

Am 16.05.2008 15:09 Uhr schrieb “Guido P.” unter
[email protected]:

Hallo,

Ich weis jetzt nicht was 100%tig in deiner Session stehen muss, denke
aber
mal eine user_id.

Dann müsste folgendes gehen:
get :index, {}, :user_id => users(:guido).id

Users(:guido) das wäre ein Fixture.

Den 2. Parameter habe ich leer gelassen, das wären dann params.

Herzliche
Grüße,Michael

Am 16.05.2008 15:33 Uhr schrieb “Guido P.” unter
[email protected]:

Hallo Michael,

danke für deine Hilfe.
Hat geklappt.

Gruß
Guido

Hier ist es auch noch mal beschrieben:
http://manuals.rubyonrails.com/read/book/5

Zitat von Michael V. [email protected]:

Hallo Michael,

könnste du bitte ein wenig deutlicher werden.

Gruß
Guido

Zitat von Michael V. [email protected]: