gpt4 book ai didi

javascript - HtmlUnit 和 jasmine-maven-plugin 是否支持 HTML5 sessionStorage?

转载 作者:行者123 更新时间:2023-12-02 19:32:44 24 4
gpt4 key购买 nike

我正在尝试在 jasmine-maven-plugin 上测试使用 HTML5 sessionStorage 的 JavaScript 函数。 Jasmine 使用 HtmlUnit 来模拟 Web 浏览器。

问题是,当自动化测试在 Maven 构建期间运行时,它会显示:

  • Error: Expected a spy, but got Function.

我已经尝试过这个How to deal with sessionStorage locally in FF (for testing)然后我得到了这个错误:

  • TypeError: Expected argument of type object, but instead had type object in file: ...

但是如果我尝试在导入 jasmine.js 的网页上运行 Jasmine,则测试完美运行。我也尝试过这个Can I access HTML5 storages using HTMLUnit ,但没有成功。

适用于 http://tryjasmine.com/ 的代码示例而不是在 jasmine-maven-plugin 中:

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 构建的一部分。

关于javascript - HtmlUnit 和 jasmine-maven-plugin 是否支持 HTML5 sessionStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com