快照测试组件时,我只想测试组件本身,而不是Redux中的操作,状态或连接功能。这是因为我在其他地方测试了这些功能。
这会扰乱您的代码覆盖率,因为它希望您测试所有函数。
例如:
export const EarningsInfo = ({ close }) => ( /* ... */ );
const mapStateToProps = _ => ({});
const mapActionsToProps = dispatch => ({
close: _ => dispatch(closeModal()),
});
export default connect(mapStateToProps, mapActionsToProps)(EarningsInfo);
Jest希望你测试
earningsInfo
mapStateToProps
mapActionsToProps
connect
所以如果你有这样一个简单的测试:
import { EarningsInfo } from '../components/EarningsInfo';
it('renders correctly', () => {
const tree = renderer.create(
<EarningsInfo close={ () => null } />
).toJSON();
expect(tree).toMatchSnapshot();
});
代码覆盖率报告您只测试了25%的文件。我确信这是按预期工作的。
我的问题是两次
mapStateToProps
,mapActionsToProps
和connect
不需要进行测试。答案 0 :(得分:1)
connect
不应该被测试,因为react-redux
自己的测试已经涵盖了这一点。如果mapStateToProps
或mapActionsToProps
具有任何非标准/复杂/业务逻辑,那么测试它们可能是有意义的。
是的,但可能有点脆弱 - http://blog.dmbcllc.com/es2015-code-coverage-and-jest-react-js-unit-testing/
不要担心100%的代码覆盖率,关注重要的事情并且可以通过单元测试很好/轻松地进行测试。