Reactjs Jest/React/Mobx:TypeError mobxReact.observer不是函数
我试图对React/Mobx代码运行一个简单的Jest测试,该代码只呈现一条路由并检查它是否被呈现。我不使用类和Mobx装饰器。我在使用MobxReactjs Jest/React/Mobx:TypeError mobxReact.observer不是函数,reactjs,jestjs,mobx,mobx-react,ts-jest,Reactjs,Jestjs,Mobx,Mobx React,Ts Jest,我试图对React/Mobx代码运行一个简单的Jest测试,该代码只呈现一条路由并检查它是否被呈现。我不使用类和Mobx装饰器。我在使用Mobxobserver函数包装组件的每个位置都会收到一个错误: const MyComp: React.FC = observer(() => {...}) 我的笑话配置: module.exports = { "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|t
observer
函数包装组件的每个位置都会收到一个错误:
const MyComp: React.FC = observer(() => {...})
我的笑话配置:
module.exports = {
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js|jsx)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"roots": ['<rootDir>'],
"modulePaths": ['<rootDir>'],
"moduleDirectories": [
".",
"src",
"node_modules"
],
"setupFiles": [
"raf/polyfill",
"<rootDir>/jest.setup.js"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"testPathIgnorePatterns": [
"<rootDir>/node_modules/"
],
"transform": {
"\\.(ts|tsx)$": "ts-jest",
"\\.js$": "babel-jest",
'^.+.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|mp4)$': 'jest-transform-stub',
'^.+\\svg': 'jest-svg-transformer',
'^.+\\inline.svg': 'jest-svg-transformer'
},
"moduleNameMapper": {
"mobx": "<rootDir>/node_modules/mobx",
'^.+.(css|styl|less|sass|scss|png|jpg|ttf|woff|mp4|woff2)$': 'jest-transform-stub',
'^.+\\svg': 'jest-svg-transformer',
'^.+\\inline.svg': 'jest-svg-transformer'
},
"coverageReporters": [
"html", "text"
]
}
module.exports={
“testRegex”:“(/\uuu测试/*\(测试规范))\ \(ts | tsx | js | jsx)$”,
“moduleFileExtensions”:[
“ts”,
“tsx”,
“js”
],
“根”:[''],
“模块路径”:[''],
“模块目录”:[
".",
“src”,
“节点_模块”
],
“设置文件”:[
“raf/polyfill”,
“/jest.setup.js”
],
“快照序列化程序”:[
“酶到json/序列化程序”
],
“testPathIgnorePatterns”:[
“/node_modules/”
],
“转变”:{
“\\(ts | tsx)$”:“ts玩笑”,
“\\.js$”:“巴别塔玩笑”,
“^.+(css | styl | less | sass | scss | png | jpg | ttf | woff | woff2 | mp4)$”:“jest transform stub”,
“^.+\\svg”:“jest svg transformer”,
“^.+\\inline.svg”:“jest svg transformer”
},
“moduleNameMapper”:{
“mobx”:“/节点\模块/mobx”,
“^.+(css | styl | less | sass | scss | png | jpg | ttf | woff | mp4 | woff2)$”:“jest transform stub”,
“^.+\\svg”:“jest svg transformer”,
“^.+\\inline.svg”:“jest svg transformer”
},
“搬运工”:[
“html”、“文本”
]
}
我的测试用例:
describe('General:', () => {
test('landing page renders ok', async () => {
render((
<ThemeProvider theme={ theme }>
{ renderRoutes(routes) }
</ThemeProvider>
), { wrapper: BrowserRouter });
await screen.findByText('Correct text here')
})
});
description('General:',()=>{
测试('登录页呈现正常',异步()=>{
渲染((
{renderRoutes(routes)}
),{wrapper:BrowserRouter});
wait screen.findByText('此处的文本正确')
})
});
我试图保持一切不变,只是从一个组件中删除了mobxobserver
wrapper,并且在完全相同的设置下一切都很好
- mobx:6.4.0
- mobx反应:7.5.0
- 笑话:26.6.3
^$
,则可能导致难以发现错误。例如,继电器
将更换所有
包含继电器
作为其名称中的子字符串:继电器
,反应继电器
和
graphql中继
将全部指向您的存根
您的moduleNameMapper
中有mobx
,它将同时删除mobx
和mobx react
,这不是您想要的。您应该能够通过删除该错误来消除该错误