reactjs - Sum 不是开玩笑的函数
问题描述
今天我第一次用 Jest 和 Enzyme 开始写一些测试。在我想测试一个特定的函数“sum”之前它工作得很好。
我得到的错误是:TypeError: (0 , _App.sum) is not a function 这会导致什么?
这是我的 App.js
import logo from './logo.svg'
import './App.css'
const App = () => {
const sum = (a, b) => {
return a + b
}
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>Hello</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
)
}
export default App
我的 App.test.js 文件:
import { shallow } from 'enzyme'
import App from './App'
import { sum } from './App'
it('renders without crashing', () => {
shallow(<App />)
})
it('Text contains Hello', () => {
const wrapper = shallow(<App />)
expect(wrapper.contains(<p>Hello</p>)).toEqual(true)
})
it('Sum equals 3', () => {
expect(sum(2 + 1)).toBe(3) // This one fails, why?
})
解决方案
Sum 不会从您的文件中导出:
import logo from './logo.svg'
import './App.css'
export const sum = (a, b) => {
return a + b
}
const App = () => {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>Hello</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
)
}
export default App
推荐阅读
- python - Python - 基于 2 个值合并字典列表
- sql - SQL 查找具有下一个最佳时间戳匹配的行对
- javascript - 我有 ?(问号)关于由 sequelize 生成的更新语句
- python - python manage.py collectstatic
- java - 禁用选定端口的 Spring Security [使用 WebFlux Security]
- java - syso 插入快捷方式在 Eclipse 中不起作用
- python - 使用 pdfminer (Python) 从特定大纲或目标(不是页码)中提取文本
- ios - 将角添加到 UITabBarController
- shell - 最大差异
- c# - 处理请求时发生未处理的异常。ArgumentNullException:值不能为空。(参数“值”)