Как протестировать компонент React методом монтирования фермента - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь использовать mount метод энзима библиотеки для рендеринга пользовательского компонента, но он завершается с ошибкой

Invariant Violation: Tester.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

вместе с некоторыми раздражающими следами стека.

Вот фрагмент кода

import React from 'react'
import {shallow, mount, render} from 'enzyme'


describe('Dashboard', () => {
    let testComp;
    beforeEach(()=>{
        testComp = mount(  <UserDashboard />  )
    });

    it('should render self without breaking.', () => {
        expect(testComp).not.toBe(null)
    })

})

Но я заметил, что проблема не в компоненте UserDashboard, потому что я по-прежнему получаю ту же ошибку, когда заменяю ее простым div элементом.

testComp = mount(  <div />  )

Методы shallow и render работают довольно хорошо, но метод mount действительно упрям.

Пожалуйста, я новичок в тестировании реагирующих компонентов, и любая помощь по поводу того, почему это происходит, будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 января 2019

На самом деле это была проблема совместимости между моей реактивной версией ( реаги v15.6.2 ) и адаптером фермента, который я использовал ( фермент-адаптер-реакция-16 ). Обычно предполагалось, что это будет энзим-адаптер-реакция-15 .

Для тех, у кого возникла такая же проблема, обязательно посетите эту ссылку , чтобы узнать, как настроить и использовать фермент с вашей версией реакции. Спасибо @nubinub за ссылку

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