Ami*_*ian 7 javascript unit-testing mocking spy jestjs
我得到了一个非常简单的反应组件,具有以下功能:
componentDidMount() {
window.scrollTo(0, 0)
}
Run Code Online (Sandbox Code Playgroud)
看来你做不了什么
window.scrollTo = jest.fn()
Run Code Online (Sandbox Code Playgroud)
窥探scrollTo功能.
因此,我想知道监视这个函数的最佳方法是什么,并断言它已经在我的测试中使用过.
谢谢
And*_*rle 11
在开玩笑全局命名空间必须通过访问global没有window.
global.scrollTo = jest.fn()
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,仅仅指派间谍对我来说不起作用。
最终我能够使用这段代码来完成这个工作
const spyScrollTo = jest.fn();
Object.defineProperty(global.window, 'scrollTo', { value: spyScrollTo });
Run Code Online (Sandbox Code Playgroud)
然后在 Jest 中我可以像这样检查它
const spyScrollTo = jest.fn();
describe('myComponent', () => {
beforeEach(() => {
Object.defineProperty(global.window, 'scrollTo', { value: spyScrollTo });
Object.defineProperty(global.window, 'scrollY', { value: 1 });
spyScrollTo.mockClear();
});
it('calls window.scrollTo', () => {
myComponent();
expect(spyScrollTo).toHaveBeenCalledWith({
top: 1,
behavior: 'smooth',
});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7370 次 |
| 最近记录: |