У меня есть этот компонент 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:::::