您好,我在JEST中进行测试时还很陌生,为什么我想问您一些支持。
我正在尝试从App.test.js中的App.js组件测试功能
但我收到一个错误:
TypeError:_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);
});
});
我做错了什么?
答案 0 :(得分:1)
您可能想尝试创建App.js类的实例。
因此,导入后,您可以尝试类似
const myApp = new App();
然后,按您的期望,调用myApp.avg(arguments)。