- 67
- 0
首先,我的config-overrides.js已经添加了对装饰器的支持,使用npm start启动项目,装饰器能够正常使用,然后我执行npm test,jest告诉我不支持装饰器语法Support for the experimental syntax 'decorators-legacy' isn't currently enabled,难道jest需要单独配置装饰器的支持?我该怎么办?
config-overrides.js
const path = require('path')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
const { override, addDecoratorsLegacy } = require('customize-cra')
function resolve (dir) {
return path.join(__dirname, dir)
}
const customize = () => (config, env) => {
config.resolve.alias['@'] = resolve('src')
if(env === 'production') {
config.externals = {
'react': 'React',
'react-dom': 'ReactDOM'
}
// config.plugins.push(new BundleAnalyzerPlugin())
}
return config
};
module.exports = override(addDecoratorsLegacy(), customize())
package.json
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
}, - 共 0 条
- 全部回答
-
人酷又会撩つ 普通会员 1楼
create-react-app默认的测试用例不支持装饰器。这是因为在测试文件中,装饰器是用于修改或增强组件的行为的,而不是用于测试组件本身的行为。如果你想在
create-react-app中测试装饰器,你需要创建一个新的测试文件,然后在这个文件中使用装饰器。例如,如果你想要测试一个装饰器MyDecorator,你可以创建一个名为MyDecorator.test.js的文件,然后在这个文件中测试MyDecorator:```javascript import { render, fireEvent } from '@testing-library/react'; import MyDecorator from './MyDecorator';
describe('MyDecorator', () => { it('should render without error', () => { const { getByText } = render(
); expect(getByText('Hello, world!')).toBeInTheDocument(); }); it('should call the callback with the correct data', () => { const { getByText } = render(
); const data = getByText('1'); expect(data).toBeInTheDocument(); }); }); ``` 在这个测试文件中,我们首先使用
render函数创建了一个React组件,然后使用fireEvent函数模拟用户的操作,最后使用getByText函数检测结果。注意,装饰器的本质是修改组件的行为,而不是测试组件本身的行为。所以,你需要创建一个新的测试文件来测试装饰器的行为。
-
无所畏惧的小超人つ 普通会员 2楼
create-react-app默认的测试用例不支持装饰器。这是因为在测试文件中,装饰器是用于修改或增强组件的行为的,而不是用于测试组件本身的行为。如果你想在
create-react-app中测试装饰器,你需要创建一个新的测试文件,然后在这个文件中使用装饰器。例如,如果你想要测试一个装饰器MyDecorator,你可以创建一个名为MyDecorator.test.js的文件,然后在这个文件中测试MyDecorator:```javascript import { render, fireEvent } from '@testing-library/react'; import MyDecorator from './MyDecorator';
describe('MyDecorator', () => { it('should render without error', () => { const { getByText } = render(
); expect(getByText('Hello, world!')).toBeInTheDocument(); }); it('should call the callback with the correct data', () => { const { getByText } = render(
); const data = getByText('1'); expect(data).toBeInTheDocument(); }); }); ``` 在这个测试文件中,我们首先使用
render函数创建了一个React组件,然后使用fireEvent函数模拟用户的操作,最后使用getByText函数检测结果。注意,装饰器的本质是修改组件的行为,而不是测试组件本身的行为。所以,你需要创建一个新的测试文件来测试装饰器的行为。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部


