【发布时间】:2018-04-27 19:12:27
【问题描述】:
我有一个组件:
import React from 'react';
import * as styles from './RedComponent.css';
class RedComponent extends React.Component {
render () {
return <div className={ styles.red }></div>;
}
}
这是测试用例:
describe('Test suite', () => {
test('RedComponent tests', () => {
const wrapper = shallow(<RedComponent />);
});
console.log(wrapper.debug());
给了
<div className={[undefined]}></div>
而不是
<div className="RedComponent__red"></div>
如果我控制导入的样式,我会得到 p>
console.log(styles); // {default: {}}
这仅在 Jest 测试用例中。应用在浏览器中呈现时样式未定义。
我的笑话配置:
{
"moduleFileExtensions": [
"js"
],
"moduleDirectories": [
"node_modules"
],
"moduleNameMapper": {
"\\.(css|less)$": "identity-obj-proxy"
},
"setupFiles": [
"./test-setup.js"
],
"collectCoverageFrom": [
"src/**/*.{js}",
"!**/node_modules/**"
],
"testEnvironment": "node",
"transform": {
"^.+\\.js$": "babel-jest",
"\\.(md|ttf|txt|eot|ico|otf|svg|png|gif|woff2|woff|jpeg)$": "./file-transformer.js"
}
}
使用 jest v21.2.1、identity-obj-proxy v3.0.0 和 React v16.0.0。
【问题讨论】:
-
试试这个
import styles from './RedComponent.css'; -
@MartinShishkov 哇,好用!您可以将此作为答案发布吗?你也知道为什么
import * as不起作用吗?
标签: css reactjs jestjs css-modules