2012-04-10 14 views
0

Funktion 'Start' übergibt den Benutzernamen und das Passwort an die Funktion logIn. Problem ist, ich erhalten:Übergeben von Parametern an verschachtelte Funktion in coffeescript

'Reference: nicht gefunden Variable: username'

Das Problem ocurse am Ende des Snippets. Beim zweiten und dritten '@echo' des Snippets wird die Variable 'Benutzername' korrekt angezeigt.

Frage ist: Wie kann ich den Parameter Benutzername und Passwort weiter zu den verschachtelten Funktionen?

Snippet:

logIn = (username, password) -> 
     @echo '--- LogIn ---' 
     @echo '--- KNOWN HERE = ' + username + " ---" 
     @then -> 
      @echo '--- username KNOWN HERE = ' + username + ' ---' 
      @evaluate -> 
        @echo '--- @evaluate username NOT KNOWN HERE = ' + username + ' ---' 

Voll Code:

casper = require('casper').create({ 
     clientScripts: ["includes/jquery.min.js"], 
     verbose: true, 
     logLevel: 'debug' 
}) 

    logIn = (username, password) -> 
     @echo '--- LogIn ---' 
     @echo '--- '+username+' // '+password+" ---" 
     @then -> 
      @echo '--- username in do = ' + username + ' ---' 
      @evaluate -> 
       @echo '--- @evaluate username = ' + username + ' ---' 
       $('#id_email').val(username) 
       $('#id_password').val(password) 
       $('.AuthForm').submit() 

    start = -> 
     @start loginURL 
     @echo '--- accounts.length = ' + accounts.length + ' ---' 
     logIn.call @, accounts[currentAccount][0], accounts[currentAccount][1] 
+0

Vielleicht haben Sie gemischte Tabs und Leerzeichen zu ändern? Versuchen Sie, Registerkarten in Leerzeichen umzuwandeln, und prüfen Sie, ob diese Zeile noch in "logIn" verschachtelt ist. –

+0

Ich habe das versucht, aber es hilft nicht. – DerMambo

Antwort

0

Ihr Problem ist, dass Casper#evaluate läuft die gegebene Funktion in der Seite, die Sie testen sind. Die Seite hat keinen Zugriff auf die username und password Variablen aus Ihrem Testskript, wenn Sie sie in übergeben. Die Lösung ist

@evaluate -> 
    ... 

zu

@evaluate ((username, password) -> 
    ... 
), {username, password} 
Verwandte Themen