2014-01-09 35 views

回答

5

您不需要無頭瀏覽器就可以使用Mocha進行DOM測試。像jsdom這樣的包提供了大量的DOM測試需要的東西,而無需使用瀏覽器,無論是否。例如,我們已經將它用於步行DOM樹的testing code

但是,Mocha本身不支持Node.js中的DOM。還有其他的東西需要提供這種支持。如果你在網上看到一些教程,你最終可能會在沒有意識到的情況下安裝對DOM的支持。例如,一個演示如何使用Mocha在Node.js中測試jQuery代碼的教程將告訴您執行npm install jquery,它還會安裝jsdom。

如果其他解決方案不提供您需要的功能,您將不得不使用類似PhantomJS的東西。例如,jsdom不提供MutationObserver接口。 (有一個名爲MutationEvents的配置設置,但打開它不提供MutationObserver。)因此,如果您需要測試取決於MutationObserver的代碼,則必須使用其他內容,如PhantomJS。

+0

當你想跨瀏覽器測試你的代碼時你會做什麼?足夠jsdom了嗎? @Louis –

+1

@InancGumus爲了實現跨瀏覽器兼容性,沒有任何東西會替代實際瀏覽器上的測試。例如,IE不接受['insertBefore'](https://developer.mozilla.org/en-US/docs/Web/API/Node.insertBefore),其引用元素的值爲undefined。它必須是'null'。只用jsdom進行測試不會揭示這一點。 – Louis

+0

是的,謝謝,我想也一樣。我希望大家意識到這一點。你知道嗎有一種抽象的可能性嗎?如果我想爲DOM使用jsdom,我可以使用它;或者,如果我想使用底層真正的DOM,我也可以使用它。你知道有沒有一個抽象的解決方案呢? @Louis –

相關問題