Среда тестирования по умолчанию в Jest
является браузерной средой, предоставляемой jsdom
.
jsdom
, обеспечивает window
, поэтому она доступна по умолчанию для тестовработает в Jest
.
Вы можете использовать Jest
для проверки приведенного выше кода следующим образом:
class Router {
constructor() {
window.onhashchange = this.hashChange;
}
hashChange() {
console.log('Hash Changed');
return true;
}
}
test('Router', () => {
const hashChangeSpy = jest.spyOn(Router.prototype, 'hashChange');
const router = new Router();
window.onhashchange();
expect(hashChangeSpy).toHaveBeenCalled(); // Success!
});