javascript - 如何修复功能已在 Jasmine 中发现错误

标签 javascript jasmine karma-jasmine jasmine-jquery jasmine2.0

我有 3 个测试,每个测试不同的方法。

it('test function1', function() {
   spyOn(document, 'getElementById');
   // ... some code to test function1
   expect(document.getElementById).toHaveBeenCalled();

 });

it('test function2', function() {
   spyOn(document, 'getElementById');
   // ... some code to test function2
   expect(document.getElementById).toHaveBeenCalled();

 });

it('test function3', function() {
   spyOn(document, 'getElementById');
   // ... some code to test function3
   expect(document.getElementById).toHaveBeenCalled();    
 });

但是当我运行这些测试时,我收到以下错误:getElementById 已被监视。有人可以解释为什么即使 spy 在不同的测试套件中我也会收到此错误以及如何修复它。

最佳答案

回复晚了,但是,如果有人试图多次监视相同的函数但返回值不同,你可以使用

it('test function', function() {
   // spy and return data
   spyOn(serviceName,'functionName').and.returnValue(data);
   expect(serviceName.functionName).toHaveBeenCalled();
   
   // spy and return newData
   serviceName.functionName = jasmine.createSpy().and.returnValue(newData);
   expect(serviceName.functionName).toHaveBeenCalled();
});

关于javascript - 如何修复功能已在 Jasmine 中发现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56118277/

相关文章:

javascript - 如何从node.js中的json文件获取对象?

angularjs - 如何在测试结束时关闭 selenium webdriver?

javascript - 同一范围内的 beforeEach block 是否按顺序运行?

angularjs - 如何使用 Jasmine 测试指令中的 'ng-click' 事件

javascript - .each 或搜索功能,我该如何使用它们?

javascript - 如何: On click open new page in new tab and redirect the old one

javascript - ASP.NET跨域模态窗口(window.showModalDialog)-参数值始终为 "undefined"

angular - 需要调用toHaveBeenCalledTimes

typescript - "Q js is undefined."尝试解决测试方法中 aurelia-breeze 的 promise (karma+jasmine)

angularjs - Angular 测试失败 "minErr"