Как я могу проверить компонентный метод при использовании response-jss и энзима? - PullRequest
0 голосов
/ 09 октября 2018

У меня в основном такой вопрос:

https://github.com/airbnb/enzyme/issues/208

Но мой компонент обернут в оболочку jss withStyles.Я использую метод shallow , созданный Material-UI, как описано здесь.

Например:

class Button extends React.Component {
  handleClick() {
    // Do something here
  }
  render() {
    // Component here
  }
}

const styles = {
     root: {}
}

export withStyles(styles)(Button); 

Проблема в том, что wrapper.instance().handleClick() сгенерируетhandleClick() is not a function.

Как получить доступ к самому компоненту?

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать погружение , чтобы добраться до вашего компонента.

Кажется, MUI также поставляется с функцией " погружение ":

Для этой ситуации можно использовать функцию createShallow ().Помимо обертывания энзимного API, он предоставляет опцию погружения и до выбора.

import { createShallow } from '@material-ui/core/test-utils';

describe('<MyComponent />', () => {
  let shallow;

  before(() => {
    shallow = createShallow({dive: true}); // Shallow render the one non-DOM child of the current wrapper, and return a wrapper around the result.
  });

  it('should work', () => {
    const wrapper = shallow(<MyComponent />);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...