Модульный тест React / Redux с Enzyme в приложении 'create-реакции-приложение' - PullRequest
0 голосов
/ 09 мая 2018

Я хочу провести базовый модульный тест для моего приложения, которое я создал с помощью пакета «create-реагировать-приложение». Я считаю, что Jest уже установлен.

У меня в приложении есть базовый редукционный код.

Я хочу проверить:

  1. Рендеринг основного компонента (App.js) без сбоев

  2. Нажатие, чтобы показать функцию следующего элемента

Я установил фермент, используя «npm install --save-dev энзим» и «энзим-адаптер-реактив-15».

Вот мой код:

import React from 'react';
import ReactDOM from 'react-dom';
import {App} from './App';
import { shallow, mount, render, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-15';

configure({ adapter: new Adapter() });

describe('A test for App component', () => {
 let wrapper

 beforeEach(()=>{
   wrapper = shallow(<App />);
 })

 it('should render App Component', () => {
   expect(wrapper).to.have.length(1)
 })
})

Я не могу заставить тест начать работать. Сообщение об ошибке:

TypeError: Cannot read property 'length' of undefined

и

TypeError: Cannot read property 'have' of undefined

Я думаю, что есть некоторые основные вещи, которые я делаю неправильно.

Любая помощь приветствуется !!!

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы, вероятно, скопировали его из примеров на веб-сайте энзима, который использует чай. Шутный эквивалент того, что вы пытаетесь проверить:

it('should render App Component', () => {
   expect(wrapper).toHaveLength(1)
})
0 голосов
/ 09 мая 2018

Вы используете функцию Jest expect. Вам необходимо явно объявить импорт из chai.

это будет выглядеть примерно так:

import { expect } from 'chai'
it('should render App Component', () => {
    expect(wrapper).to.have.length(1)
})

Кроме того, вместо добавления конфигурации адаптера для каждого теста, вы можете добавить файл setupTests.js в /src, и он будет работать для всех тестов: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...