【发布时间】:2025-12-23 15:10:15
【问题描述】:
我正在尝试使用 Jasmine 测试我的 chrome 扩展程序,但我无法让 calls.length 和 callCount 按预期运行。两种情况都返回undefined。
我已包含代码示例和规范。如果有帮助,下面是其余代码:https://github.com/DruRly/kamikaze/tree/closeIdleTab
如何重现:
git clone https://github.com/DruRly/kamikaze/tree/closeIdleTabcd kamikazeopen SpecRunner.html
spec/kamikazeSpec.js
describe("kamikaze", function() {
describe("closeIdleTabs", function(){
it("calls closeIdleTab for each tab received", function(){
spyOn(kamikaze, 'closeIdleTab');
kamikaze.closeIdleTabs([1,2,3]);
expect(kamikaze.closeIdleTab.calls.length).toBe(3);
})
})
})
src/kamikaze.js
kamikaze = {
...
closeIdleTabs: function(tabs){
tabs.forEach(function(tab){
test.closeIdleTab(tab);
})
},
closeIdleTab: function(tab){
if(tabTimeStamps[tab.id]){
var secondsSinceUpdated = getSecondsSinceUpdated(tab.id)
if(secondsSinceUpdated > (minutesUntilIdle * 60)){
chrome.tabs.remove(tab.id)
}
}
},
...
}
【问题讨论】:
-
问题的质量和格式+10。大多数人会在前两行(字面意思)之后停下来! (相关代码、完整代码链接和重现问题的步骤 - 我讨厌回答这个问题很容易:))
-
感谢@ExpertSystem!感觉自己快疯了。我仍然可能是,但我也在查看过时的文档:)
-
如果回购仍然可供参考,那就太好了。
标签: javascript google-chrome-extension jasmine bdd jasmine2.0