Вы можете использовать zombie.js , в котором есть все необходимое для тестирования.Или вы можете использовать jsdom (который zombie.js использует для внутреннего использования), чтобы получить DOM в node.js и выполнить ваши тесты на этом DOM.
Я также могу порекомендовать testling , который выполняеттестирует в соответствии с вашей спецификацией во всех распространенных браузерах - код работает в реальных браузерах для вашего сервиса.
Вот простой пример с jsdom:
var jsdom = require("jsdom");
jsdom.env(url, ["http://code.jquery.com/jquery.min.js"], function(err, window) {
// jQuery is at window.$
});
Вместо url
выше, вы можете иметь HTML-документ или фрагмент.
Вы также можете загрузить страницу и извлечь любые внешние ресурсы, вместо предоставления jQuery и т. д. непосредственно в jsdom:
var jsdom = require("jsdom").jsdom,
doc = jsdom(markup),
window = doc.createWindow();
// Do your stuff on window, jsdom will have fetched all the scripts referenced in the markup
Опять же, зомби.js использует jsdom для внутреннего использования, и это может быть лучшей отправной точкой.