2013-12-12 43 views
4

我剛剛開始使用JS單元測試,並且每個測試都進行得很順利(我和Mocha一起)我遇到問題,但它需要一些'文檔'屬性,如:摩卡'未捕獲的ReferenceError:窗口未定義'

它給了我下面的錯誤:

Mocha 'Uncaught ReferenceError: document is not defined' 

我試運行的命令是:

mocha -u bdd test.js --reporter spec 

現在我的問題是,當我需要文檔和DOM對象的訪問權限時,是否需要一些PhantomJS(或simillar工具)進行測試?或者我只是打開任何建議如何解決這個問題。

+0

你試過window.document.getElementsByTagName()嗎? – Bora

+0

它不會導致既不窗戶既不存在文件。到目前爲止,我提出了「模擬」這個對象的想法。 –

+0

您可以使用諸如mocha-phantomjs之類的東西,但從長遠來看最簡單的方法是使用Karma來運行您的摩卡測試。它將啓動瀏覽器並在這些瀏覽器環境中運行你的代碼。您也可以使用它無頭,只需使用PhantomJS。 – oligofren

回答

4

是的,你需要使用像PhantomJS或jsdom這樣的東西,以便對某種DOM樹運行你的代碼。默認情況下,Node不提供DOM樹,因爲它是大多數應用程序不需要的特定功能。

你想選擇的解決方案實際上取決於你正在測試的代碼。我用jsdom得到了很好的結果,只需要導航DOM樹中的節點就可以到test code。 jsdom肯定不會這樣做。我不確定限制在哪裏。

相關問題