1Ma*_*yur 2 reactjs jestjs enzyme
用笑话和酶测试反应和打字稿,我将如何模拟这个 expectsVideo 函数,以便我可以根据我的测试用例场景定义它是否返回 true 或 false
jest.mock('utils/media-utils', () => ({
expectsVideo: () => true,
myOtherFunctions: jest.fn()
}));
Run Code Online (Sandbox Code Playgroud)
utils/media-utils 如果正在我正在测试的反应组件中导入的文件。如果我尝试从外部引用对象,则会出现错误,指出不能使用范围外的变量。尝试了各种实现,我遇到了不同的博客,但没有帮助。
mockImplementation在模拟整个模块时应该有所帮助:
import * as mediaUtils from 'utils/media-utils';
mock('utils/media-utils'); // automocking whole module
it('....1...', () => {
mediaUtils.expectsVideo.mockImplementation(() => true);
});
it('....2...', () => {
mediaUtils.expectsVideo.mockImplementation(() => false);
});
Run Code Online (Sandbox Code Playgroud)
顺便说一句,对于从返回错误的外部引用变量(来自jest.doMock文档部分):
使用 babel-jest 时,对 mock 的调用会自动提升到代码块的顶部。如果您想明确避免这种行为,请使用此方法。
所以这就是为什么 allconst和let甚至在模块被模拟时都没有定义。
| 归档时间: |
|
| 查看次数: |
6672 次 |
| 最近记录: |