Как писать тестовые примеры в React с использованием Jest

#reactjs #jestjs

#reactjs #jestjs

Вопрос:

Я работаю над проектом React. И я очень новичок в написании тестовых примеров Jest. В моем проекте я написал простую функцию и пытаюсь протестировать эту функцию. Но тестовый пример терпит неудачу, кто-нибудь, пожалуйста, помогите преодолеть все ошибки.

Это App.js

 import React from 'react';
import './App.css';
import Add from './Add/Add';

const App = () => {
  return (
    <div className='container'>
      <div className='row'>
        <div className='col-12'>
          <Add></Add>
        </div>
      </div>
    </div>
  )
}

export default App
  

Это Add.js

 import React from 'react';

const Add = () => {
    const addition = () => {
        const a = 10;
        const b = 10;
        const c = a   b
        return c
    }
    const myNumber = addition()
    return (
        <div>
            {myNumber}
        </div>
    )
}

export default Add
  

Это Add.test.js

 import { addition } from './Add';

it('Addition testing', () => {
    expect(addition()).toBe(20)
})
  

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий

Комментарии:

1. Почему addition — это другой компонент, и он возвращается пустым divs .

Ответ №1:

Проблема в том, что addition функция не доступна из Add.js . Если вы вместо этого сделаете

 import React from 'react';

export const addition = () => {
    const a = 10;
    const b = 10;
    const c = a   b
    return c
}

const Add = () => {
    return (
        <div></div>
    )
}

export default Add
  

тест должен пройти.

Если вы хотите использовать дополнение в своем компоненте, вы можете сделать

 import React from 'react';

export const addition = () => {
    const a = 10;
    const b = 10;
    const c = a   b
    return c
}

const Add = () => {
    const myNumber = addition();
    return (
        <div>{myNumber}</div>
    )
}

export default Add
  

Комментарии:

1. Привет @Johan Book Я попробовал ваш код, но он все равно не прошел тест

2. Какую ошибку показывает ваш тест? Вероятно, вам нужно использовать it(...) вместо test()

3. Ошибка типа: (0 , _Add.addition) не является функцией

4. Вы пробовали запускать исправленный тест с кодом, который я добавил export const addition ... ?