我正在使用 Jasmine 测试套件,其中包括“普通”Jasmine 测试以及一些 Angular 2 组件的 Jasmine 测试。由于 Angular 2 的包含,zone.js 被加载。这与 Jasmine 的时钟产生了冲突。例如,以下测试失败并出现错误:Error: Jasmine Clock was unable to install over custom global timer functions. Is the clock already installed?
describe('an async test with zone.js present', function() {
beforeEach(function() {
jasmine.clock().install();
});
afterEach(function() {
jasmine.clock().uninstall();
});
it('cannot install jasmine\'s mock clock', function() {
var callback = jasmine.createSpy('setTimeoutCallback')
setTimeout(callback, 55);
jasmine.clock().tick(56);
expect(callback).toHaveBeenCalled();
});
})
Here https://plnkr.co/edit/ib16bZNsOaE6t0RCkflN?p=preview上面的代码是 plunker。
由于无法将 Angular 2 测试与“普通”测试分开提供,我想知道有哪些选项可用。例如,是否可以通过区域执行 Jasmine 时钟的工作?例如,是否可以在断言之前模拟区域的滴答或刷新所有计划任务?
对我来说,如果你卸载时钟就可以了beforeEach
。茉莉花不推荐它,而且有点奇怪,因为对于卸载来说,使用它更有意义afterEach
。但打电话uninstall
before首先install
打电话给我修好了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)