2011-09-29 7 views
3

J'essaie d'exécuter des tests unitaires en utilisant QUnit écrit dans CoffeeScript mais il semble y avoir quelques mots réservés qui causent des problèmes, en particulier "non". Y a-t-il un moyen d'échapper un mot réservé de CoffeeScript? Voici un test simple qui illustre le problème:Comment échapper les mots réservés de CoffeeScript?

module "Sad face test" 

test "will not compile", -> 
    not false, "holy crap this creates a syntax error :-(" 

L'erreur ce produit est « parse error sur la ligne 3: inattendue « » »

+0

Votre question est de savoir comment appeler une fonction appelée "non", non? – Thilo

+0

Oui. "Not" est une fonction dans qunit mais c'est aussi un mot-clé coffeescript. – bressain

Répondre

3

La fonction not est globale, elle est donc attachée à window, n'est-ce pas? Au lieu d'évasions backtick, alors, vous pouvez simplement écrire

window.not 

au lieu de not; ou

notEqual = window.not 
+0

ressemble Module « test visage triste » test « ne compile pas », -> window.not faux, « Bordel cela crée une erreur de syntaxe: - (" fonctionne très bien, merci! – bressain

4

La meilleure réponse que j'ai pu trouver est d'échapper à JavaScript et alias la fonction:

notEqual = `not` 

module "Sad face test" 

test "will not compile", -> 
    notEqual false, "holy crap this creates a syntax error :-(" 

Bien qu'il ressemble not n'est pas une fonction dans la dernière version de QUnit, donc dans ce cas précis, vous ne pouvez pas devoir échapper à un CoffeeScript mot réservé.

+0

Peut être réduit à: 'notEqual =' not'' – matyr

+0

Merci, j'ai mis à jour la réponse. – Karl

+0

J'aime cette réponse, mais la réponse de Trevor me semble plus propre à – bressain

Questions connexes