Тестирование useEffect (), Хуки - PullRequest
       35

Тестирование useEffect (), Хуки

0 голосов
/ 26 сентября 2019

Здравствуйте, я тестирую Hooks, поэтому я действительно заблудился, пытался найти ответ, но безрезультатно.

Итак, вопрос в том, как я могу протестировать useEffect из этого кода?

Код:

const [ range, setRange ] = useState(DATE_OPTIONS.LAST_30_DAYS)
const [ isLoading, setIsLoading ] = useState(true)

const startLoading = () => setIsLoading(true)
const stopLoading = () => setIsLoading(false)

useEffect(() => {
    startLoading()
    fetchYearlyOptiDrive(range, objectId)
        .then(stopLoading)
        .catch(stopLoading)
}, [range, objectId])

И то, что я хочу проверить из кода, это LoadingIndicator, проверьте реквизиты isLoading, если это true или false.

<LoadingIndicator {...{ isLoading }} />

Тест:

    test('should return the default value', () => {
        const wrapper = mount(<OptiDriveCard {...props} />)
        expect(wrapper.find('LoadingIndicator').props).toBeTruthy()
    })

Ошибка:

Инвариантное нарушение: Тип элементанедопустимо: ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: undefined

Любое предложение?

1 Ответ

1 голос
/ 26 сентября 2019

Чтобы проверить значение, переданное компоненту, вы можете использовать метод энзима prop .В вашем случае:

expect(wrapper.find('LoadingIndicator').prop('isLoading')).toBe(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...