【问题标题】:Testing javascript functions across page load跨页面加载测试 javascript 函数
【发布时间】:2014-09-15 16:30:16
【问题描述】:
我有一个适用于状态的代码。在每次状态更改时,当前状态都会保存到 sessionStorage,当用户访问不同的页面时,该状态会从 sessionStorage 加载回来。
我想测试状态是否正确保存到存储中,并且页面加载是否正确加载回。但我不知道如何测试这个场景。
我目前正在使用 Mocha,但我只知道如何在其中编写单元测试。
【问题讨论】:
标签:
javascript
unit-testing
mocha.js
end-to-end
【解决方案1】:
Mocha 本身不足以实现这一点,您需要一个工具来让您端到端地做到这一点
我正在测试一个名为 phantomjs (http://phantomjs.org/) 的奇妙东西,你可以这样做:
var webpage = require('webpage');
var page = webpage.create();
page.open('http://www.google.com', function() {
window.localStorage.setItem("test", "xtest");
console.log(window.localStorage);
page = webpage.create();
page.open('http://www.google.com', function() {
console.log(
window.localStorage.getItem("test")
); // xtest
console.log(window.localStorage);
phantom.exit();
});
});
您还需要 node-phantom (https://www.npmjs.org/package/phantom) 以允许您使用同一 node.js 脚本中的 mocha 和 phantomjs 来编写测试