Javascript Jest.mock外部变量引用
对于快照测试,需要模拟1个react组件,只是简单的虚拟模拟 当我试图在模拟函数中调用Javascript Jest.mock外部变量引用,javascript,reactjs,jestjs,Javascript,Reactjs,Jestjs,对于快照测试,需要模拟1个react组件,只是简单的虚拟模拟 当我试图在模拟函数中调用React.Component时,我得到一个错误: jest.mock()的第二个参数不允许引用任何 外部变量 但是如果我调用require('react')。组件,那就行了! 有没有人性化的方法来正确地做这件事 我的代码: //This one fails import React from ('react'); ... jest.mock('...', () => { return class
React.Component
时,我得到一个错误:
jest.mock()
的第二个参数不允许引用任何
外部变量
但是如果我调用require('react')。组件,那就行了!
有没有人性化的方法来正确地做这件事
我的代码:
//This one fails
import React from ('react');
...
jest.mock('...', () => { return class ... extends React.Component {
render(){
return <span/>
}
}});
//This one works
import React from ('react');
...
jest.mock('...', () => { return class ... extends require('react').Component {
render(){
return <span/>
}
}});
//这个失败了
从('React')导入React;
...
jest.mock(“…”,()=>{返回类…扩展React.Component{
render(){
返回
}
}});
//这个有效
从('React')导入React;
...
jest.mock(“…”,()=>{返回类…扩展require('react')。组件{
render(){
返回
}
}});
这曾经是我们修复的一个bug。在模拟中,您只能要求
您不允许访问外部变量
您可以通过这种方式更改代码以使其正常工作
jest.mock('...', () => {
const React = require ('react')
return class ... extends React.Component {
render() {
return <span />
}
}
})
jest.mock(“…”,()=>{
const React=require('React')
返回类…扩展React.Component{
render(){
返回
}
}
})
但如果要更改变量?假设您想要模拟一个具有一个对象的函数,并且为了在一个测试中进行测试,它必须为true,而其他必须为false。我现在怎么做呢?