@uuushka

Как тестировать компоненты, которые описаны через arrow functions?

Всем привет!
Проблема такая: описал компоненту через стрелочную функцию
const Form = (props) => {
<div>
  <Button onClick={() => func1}>Компонента Кнопка 1</Button>
  <Button onClick={() => func2}>Компонента Кнопка 2</Button>
</div>
}

такой примерный псевдокод.

и написал на это дело тесты (TestUtils, Karma, Jasmine), которые проверяли бы, что при нажатии на первую кнопку вызывалась бы func1, а на вторую func2.

но уже на этом месте проблемы:
const instance = TestUtils.renderIntoDocument(<Form />);

Я получаю не React.Component (что логично, я же не наследуюсь от него), а NULL!!
Не могу понять и найти, какими другими способами и инструментами можно протестировать??
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
@uuushka Автор вопроса
Нашел решение и оно оказалось простым.

Для тестирования таких компонент можно создать компонент TestWrapper
import React, {Component, PropTypes} from 'react';

export default class TestWrapper extends Component {
  constructor(props) {
    super(props);
  }

  render() {
    return React.Children.only(this.props.children);
  }
}

TestWrapper.propTypes = {
  children: PropTypes.node.isRequired
}


и оборачивать в него мой "стрелочный компонент"
const instance = TestUtils.renderIntoDocument(<TestWrapper><Form /></TestWrapper>);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 02:45
2000 руб./за проект
24 нояб. 2024, в 23:46
20000 руб./за проект