javascript - 如何导出组件类和该类方法?
问题描述
对于 jest 测试文件,我想导入组件和该方法。
例如我有这个组件:
import React from 'react'
class Dashboard extends React.Component {
constructor(props) {
super(props)
}
sum(one, two) {
return one + two
}
render() {
return(
<div>
<h1>{this.sum(12, 14)}</h1>
</div>
)
}
}
export default Dashboard
因此,在测试文件中,我喜欢使用 toEqual 的 render 和 sum 函数来测试组件:
import React from 'react';
import ReactDOM from 'react-dom';
import Dashboard from '../Dashboard';
it('check component', () => {
const div = document.createElement('div');
ReactDOM.render(<Dashboard />, div);
});
it('check sum function', () => {
expect(sum(12, 12)).toEqual(24);
});
但是第二次测试和求和失败了,因为测试函数找不到求和函数...
如何导出组件并包含方法?
谢谢
解决方案
如果你想测试一个函数,它不依赖于你可以使用static
修饰符的组件:
import React from 'react'
class Dashboard extends React.Component {
constructor(props) {
super(props)
}
static sum(one, two) {
return one + two
}
render() {
return(
<div>
<h1>{Dashboard.sum(12, 14)}</h1>
</div>
)
}
}
export default Dashboard
it('check component', () => {
const div = document.createElement('div');
ReactDOM.render(<Dashboard />, div);
});
it('check sum function', () => {
expect(Dashboard.sum(12, 12)).toEqual(24);
});
在大多数情况下,没有必要单独测试 react-component 方法。
解决问题的另一种方法是将总和移动到单独的模块。然后您可以将单元测试添加到此模块。
推荐阅读
- python - How to run batch file through Windows Scheduler running python file outputting plotly plot
- python - 如何通过语法 TupleName.index() 查找嵌套元组元素的索引
- xcode - Xcode 项目导航器,无法访问项目
- javascript - 汽车品牌/型号动态下拉菜单
- python - 从 sql 表中选择值对
- scala - Scala等待异步调用在循环中完成
- asp.net-core-2.2 - 如何修复验证错误 Netcore 2.2 Web API 中的响应
- sql - Regexp_replace WITH DECIMAL 返回错误 ORA-01722 "Invalid Number"
- spring-boot - @SpyBean 不适用于 Pact 和 JUnit 5
- php - 清理带有标点错误和缺少空格的字符串