【问题标题】:Material UI + Jest + Enzyme testing for tabsMaterial UI + Jest + Enzyme 测试标签
【发布时间】:2020-03-16 02:11:16
【问题描述】:

我正在尝试测试具有选项卡的组件。我的第一个测试将确保初始状态正确,接下来的测试将确保单击另一个选项卡时会更改状态。我将material-uijestenzyme 一起使用。

import React, { useState } from 'react';

import { Grid, Typography, Tabs, Tab, CircularProgress, Button } from '@material-ui/core';
import useStyles from './styles';

const TabExample = () => {
  const classes = useStyles();
  const [activeTab, setActiveTab] = useState(0);

  return (
    <Grid container className={classes.container}>
      <div className={classes.formContainer}>
        <div className={classes.form}>
          <Tabs
            id="tabs"
            value={activeTab}
            onChange={(_e, id) => setActiveTab(id)}
            indicatorColor="primary"
            textColor="primary"
            centered
          >
            <Tab label="Tab1" classes={{ root: classes.tab }} />
            <Tab label="Tab2" classes={{ root: classes.tab }} />
          </Tabs>
          {activeTab === 0 ? (
            <div>TAB 1 </div>
          ) : (
            <div>TAB 1 </div>
          )}
        </div>
      </div>
    </Grid>
  ) 
}

我尝试了一些解决方案,但都不起作用,并且不确定该文档的位置。这是我尝试过的:

import TabExample from '../TabExample';

it('Tab is changed when tab is clicked', () => {
  const wrapper = mount(
    <Provider>
       <TabExample />
    </Provider>,
  );

  // prints tabs component
  console.log(wrapper.find('#tabs').debug());

  // prints nothing
  console.log(wrapper.find('WithStyles(Grid)').debug());

  // prints first tab
  console.log(wrapper.find('#tabs button').first().debug());

  // TypeError: Cannot read property 'value' of undefined
  console.log(wrapper.find('#tabs button').value.debug());
});

不知道如何获得 t

【问题讨论】:

    标签: reactjs jestjs material-ui enzyme


    【解决方案1】:

    我想通了:

    it('Initial tab is 0', () => {
        expect(
          wrapper
            .find('WithStyles(ForwardRef(Tabs))')
            .childAt(0)
            .props().value,
        ).toBe(0);
    
        expect(
          wrapper
            .find('WithStyles(ForwardRef(Tab))')
            .at(0)
            .props().selected,
        ).toBe(true);
    
      });
    

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 2019-07-24
      • 2021-10-29
      • 2018-11-27
      • 2020-11-28
      • 2021-01-31
      • 2022-01-05
      • 2015-12-30
      • 2018-09-14
      相关资源
      最近更新 更多