Javascript HtmlUnit和jasmine maven插件是否支持HTML5会话存储?
我正在测试一个JavaScript函数,它在jasmine maven插件上使用HTML5会话存储。Jasmine使用HtmlUnit模拟web浏览器 问题在于,当自动化测试在maven构建期间运行时,它会说:Javascript HtmlUnit和jasmine maven插件是否支持HTML5会话存储?,javascript,html,unit-testing,htmlunit,jasmine-maven-plugin,Javascript,Html,Unit Testing,Htmlunit,Jasmine Maven Plugin,我正在测试一个JavaScript函数,它在jasmine maven插件上使用HTML5会话存储。Jasmine使用HtmlUnit模拟web浏览器 问题在于,当自动化测试在maven构建期间运行时,它会说: 错误:应为间谍,但已获取函数 我尝试了这个,然后我得到了这个错误: TypeError:应为类型对象的参数,但文件中有类型对象: 但是,如果我尝试在导入Jasmine.js的网页上运行Jasmine,测试将非常有效。 我也尝试过,但没有成功 可在jasmine maven插件上工
- 错误:应为间谍,但已获取函数
- TypeError:应为类型对象的参数,但文件中有类型对象:
function alertItem(id) {
console.log("start");
var x = sessionStorage.getItem(id);
alert(x);
}
describe("sessionStorage test", function () {
console = {
log : function() {},
error : function() {},
warn : function() {}
};
var mockup = function() {
var table = {};
return {
getItem: function(key) {
return table[key];
},
setItem: function(key, value) {
table[key] = value.toString();
},
removeItem: function(key) {
table.pop();
},
clear: function() {
table = {};
}
};
}();
Object.defineProperty(window, 'sessionStorage', {
value: mockup
});
it("must work", function () {
console.log("testing...");
spyOn(sessionStorage, 'getItem').andReturn("my value");
alertItem("id");
expect(sessionStorage.getItem).toHaveBeenCalled();
});
});
有人有主意吗
谢谢。HTMLUnit不支持很多HTML5功能-虽然您的浏览器支持,但这就是为什么它可以在浏览器中工作,但不能作为HTMLUnit构建的一部分。正如@Kyle建议的,在jasmine maven插件上使用sessionStorage和PhantomJS,而不是HTMLUnit工作 更多信息,请访问:
谢谢大家! 谢谢@Mike的回答。你知道有哪个maven插件在没有HTMLUnit的情况下运行jasmine吗?或者HTMLUnit团队正在努力支持HTML5?我已经提交了一个关于HTMLUnit sourceforge的bug,但他们似乎没有参与,因为它包括jasmine maven:支持将jasmine maven插件与PhantomJS而不是HTMLUnit一起使用,这是最近添加的。这里有一个配置示例: