Как выполнить юнит-тестирование в приложении React с JEST - PullRequest
1 голос
/ 28 мая 2019

Привет, я новичок в тестировании в JEST, поэтому я хочу спросить вас о поддержке.
Я пытаюсь протестировать функцию из компонента App.js в моем App.test.js, но получаю сообщение об ошибке:

Ошибка ввода: _App.default.avg не является функцией.

Вот мой App.js компонент

class App extends React.Component {

 state={ }

 avg = (elements) => {   
 let sum=0;    
 for(let i=0; i<elements.length; i++){
     sum += elements[i].main.temp;
 }
 return (sum/elements.length).toFixed(2);
 }

  render() {
    return(
      <BrowserRouter>
          <AppContext.Provider value={contextElements}>
              <div className="App container">             
                <Route path="/" component={SettingsBar}/>               
                <Route path="/settings" component={SettingsView}/>               
                <Route exact path="/" component={RootView}/>
                <Route  path="/itemview" component={ItemView}/>
              </div>
          </AppContext.Provider>     
      </BrowserRouter>

    )  
  }
}
export default App;


И App.test.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

describe('avg', () => {

     it('should return 3 for given array [1,2,3,4,5]', () => {
         expect(App.avg([1,2,3,4,5])).toBe(3);
     });

});

Что я делаю не так?

1 Ответ

1 голос
/ 28 мая 2019

Возможно, вы захотите создать экземпляр своего класса App.js.

Поэтому после импорта вы можете попробовать что-то вроде

const myApp = new App ();

Затем, как вы ожидаете, вызовите myApp.avg (arguments).

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