2016-06-09 52 views
0

對不起,我不知道這是一個愚蠢的問題或不,但我找不到答案。摩卡抱怨參考錯誤:URL未定義

我在JavaScript中有一個純函數檢查,如果該參數是一個正確的URL

isValidUrl(url) { 
    const protocol = new URL(url).protocol; 
    ... 
} 

的代碼運行在瀏覽器的罰款。但我想用摩卡書寫一個測試。摩卡抱怨「ReferenceError:URL未定義」。那麼這是否意味着服務器端的JS沒有URL類?我是否需要使用無頭瀏覽器來測試它?

非常感謝。

回答

0

節點和朋友,您的測試可能運行,實施the ECMAScript (JS) specURL類是從this WhatWG spec。 JS規範沒有提及URL類,它解釋了你的直接問題。

Node還實現了自己的基於CommonJS的模塊,其中之一是a URL module。但是,它似乎沒有相同的界面。

使用Mocha與Karma在無頭瀏覽器中運行測試(如PhantomJS)可能是更好的解決方案。你會得到一個準確的,如果稍微過時的鉻版本來測試。您也可以將Karma設置爲使用其他瀏覽器(如果它們在測試機器上可用)。

+0

非常感謝!我對節點很陌生,特別是對於測試。我會試着看看PhantomJS。 – cppcho