2011-09-29 64 views
3

我試圖用CoffeeScript中編寫的QUnit來運行一些單元測試,但似乎有一些保留字導致問題,最顯着的是「不」。有沒有辦法逃避CoffeeScript保留字?這裏有一個簡單的測試演示該問題:我如何逃避CoffeeScript保留字?

module "Sad face test" 

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

此產生的錯誤是「第3行解析錯誤:意外‘’」

+0

你的問題是如何調用一個名爲「不」的功能,對不對? – Thilo

+0

是的。 「不」是qunit中的函數,但也是一個coffeescript關鍵字。 – bressain

回答

3

not功能是全球性的,所以它實際上附加到window,對不對?相反,反引號逃逸的,那麼,你可以只寫

window.not 

,而不是not;或

notEqual = window.not 
+0

看起來像 模塊「悲傷的臉測試」 測試「不會編譯」, - > window.not假,「哇靠這創造了一個語法錯誤: - (「 很好,謝謝! – bressain

4

最佳答案我已經能夠找到的是逃入JavaScript和別名功能:

notEqual = `not` 

module "Sad face test" 

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

雖然它看起來像not不是QUnit的最新版本中的功能,所以在這種特定的情況下,你可能不需要逃脫的CoffeeScript保留字。

+0

可以簡化爲:'notEqual ='not'' – matyr

+0

謝謝,我已經更新了答案。 – Karl

+0

我喜歡這個答案,但Trevor的答案似乎吸塵器我 – bressain