ReactJS: тестирование с использованием поверхностного текста Jest Enzyme возвращает пустое значение - PullRequest
0 голосов
/ 03 мая 2019

У меня есть этот компонент React

import React from 'react';

class template extends React.Component {
  render() {
    return (
      <div>
        <p>count: 0</p>
      </div>
    );
  }
}

export default template;

, и я пытаюсь запустить этот тест на нем

import React from 'react'; // eslint-disable-line no-unused-vars
import { shallow } from 'enzyme';

    import template from '../common/template';

    describe('template.js', () => {
      it('Renders template success ', () => {
        const wrapper = shallow(<template />);
        const text = wrapper.find('p').text();
        expect(wrapper.length).toEqual(1);
        expect(text).toEqual('count: 0');
      });
    });

Получение следующей ошибки.

src/components/__tests__/template.js
  ● template.js › Renders template success

    Method “text” is meant to be run on 1 node. 0 found instead.

       6 |   it('Renders template success ', () => {
       7 |     const wrapper = shallow(<template />);
    >  8 |     const text = wrapper.find('p').text();
         |                                    ^
       9 |     expect(wrapper.length).toEqual(1);
      10 |     expect(text).toEqual('count: 0');
      11 |   });

      at ShallowWrapper.single (node_modules/enzyme/build/ShallowWrapper.js:1958:17)
      at ShallowWrapper.text (node_modules/enzyme/build/ShallowWrapper.js:1097:21)
      at Object.text (src/components/__tests__/template.js:8:36)

wrapper.text () пуст.Что я делаю не так?

Запуск теста с помощью этой команды

eslint src && react-scripts test --env=jsdom --coverage

Приложение создано с помощью приложения create response https://github.com/facebook/create-react-app

"@types/jest": "^23.3.12",
"enzyme": "^3.8.0",
"enzyme-adapter-react-16": "^1.7.1",
"react-scripts": "2.1.3",
"react": "^16.7.0",

Обновление:

кажется, что мелкая не работает должным образом, или я что-то упустил .. добавив следующие две строки в тесте

console.log('wrapper:::::', wrapper);
console.log('wrapper.text:::::', wrapper.text());

возвращает эти выходные данные

console.log('wrapper.text', wrapper.text());
   console.log src/components/__tests__/template.js:8
      wrapper::::: ShallowWrapper {}
    console.log src/components/__tests__/template.js:9
      wrapper.text:::::
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...