#coffeescript #qunit
#coffeescript #qunit
Вопрос:
Я пытаюсь запустить некоторые модульные тесты, используя QUnit, написанный на CoffeeScript, но, похоже, есть некоторые зарезервированные слова, которые вызывают проблемы, в первую очередь «not». Есть ли способ избежать зарезервированного слова CoffeeScript? Вот простой тест, который демонстрирует проблему:
module "Sad face test"
test "will not compile", ->
not false, "holy crap this creates a syntax error :-("
Генерируемая ошибка — «Ошибка синтаксического анализа в строке 3: неожиданное ‘,'»
Комментарии:
1. Ваш вопрос заключается в том, как вызвать функцию с именем «not», верно?
2. ДА. «Not» — это функция в qunit, но также является ключевым словом coffeescript.
Ответ №1:
Лучший ответ, который я смог найти, — это перейти в JavaScript и псевдоним функции:
notEqual = `not`
module "Sad face test"
test "will not compile", ->
notEqual false, "holy crap this creates a syntax error :-("
Хотя похоже not
, что это не функция в последней версии QUnit, поэтому в данном конкретном случае вам может не понадобиться экранировать зарезервированное слово CoffeeScript.
Комментарии:
1. Может быть уменьшено до:
notEqual = `not`
2. Мне нравится этот ответ, но ответ Тревора кажется мне более чистым
Ответ №2:
not
Функция глобальная, поэтому она фактически привязана к window
, верно? Тогда вместо экранирования обратного хода вы можете просто написать
window.not
вместо not
; или
notEqual = window.not
Комментарии:
1. похоже, что модуль «Sad face test» тест «не будет компилироваться», -> window.not false, «черт возьми, это создает синтаксическую ошибку:-(» отлично работает, спасибо!