2012-06-05 2 views
5

Bei der Arbeit wurde ich mit Unit-Testing unserer Javascript-Code beauftragt. Ich entschied mich für das Jasmine-Unit-Testing-Framework und begann zu lernen, wie man es benutzt, als ich darüber informiert wurde, dass wir jetzt unseren JavaScript-Code innerhalb von PHP eingebunden haben und nicht einmal Javascript-Dateien mehr verwenden.Unit Testing Javascript Code Inline innerhalb von PHP

Kann Jasmine das umgehen? Gibt es einen anderen Rahmen, der könnte? Sollte ich einen PHP Unit Test und einen Javascript Unit Test verwenden? Was wäre mein bester Ansatz?

Sie eine Idee Einige Codebeispiel von einer recht einfach Seite geben:

http://pastebin.com/K3YP33id

http://pastebin.com/QaR8zUh1 < --- vorlegen würde

jede Art von Einsicht stark

+1

Das ist eine schwierige Situation ist in zu sein (da ich selbst). IMO, Sie müssen wirklich beide testen, für die JS benötigen Sie wahrscheinlich etwas wie PhantomJS, um die tatsächliche JavaScript-Ausgabe von der HTTP-Anfrage zu testen. – Aknosis

+7

* "Wir waren jetzt inline unser JavaScript-Code innerhalb von PHP und nicht einmal mehr mit Javascript-Dateien." * ... wow ... wer dachte, das wäre eine gute Idee ???? – rdlowrey

+0

Aknosis - Ich werde in PhantomJS und ein PHP Unit Testing-Framework schauen, danke für Ihre Antwort! – Goose

Antwort

1

geschätzt sein Bestes Praxis ist es, alle PHP aus Javascript und Unit-Test getrennt voneinander zu teilen. Auf lange Sicht wird es zum Albtraum, stark integrierten Code zu pflegen und zu testen. Versuchen Sie eine Modularisierung so weit wie möglich.

Zum Beispiel, hier ist, wie ich es tun würde:

var exampleVariables = { 
    'name' = <?=$name?>, 
    'occupation' = <?=$occupation?> 
}; 

unitTestableFunction(exampleVariables);