我有一个组件类包含几种方法。我希望能够单独测试每种方法。到目前为止,我已经试过各自单独导出到测试并创建后添加到类,如:有没有更好的方法来测试一个类的个别方法
export const getStrFun =() => 'lorem ip'
export const getNumFun = n => n
export const getJsxFun = (el, i) => <li key={i}>{el}</li>
class MyClass extends Component {
getStrFun = getStrFun
getNumFun = getNumFun
getJsxFun = getJsxFun
render() {
return (
<section>
<p>{this.getStrFun()}</p>
<p>{this.getNumFun(2)}</p>
<ol>{['abc', '123', 'αβγ'].map(this.getJsxFun)}</ol>
</section>
)
}
}
export default MyClass
然后在myClass.test.js有我的测试设置
import MyClass, { getStrFun, getNumFun } from '../MyClass'
describe('<MyClass',() => {
it('should render the component',() => {
const component = renderer.create(<MyClass />)
const tree = component.toJSON()
expect(tree).toMatchSnapshot()
})
it('should return the number it is given',() => {
const number = 100
const result = getNumFun(number)
expect(result).toEqual(number)
})
it('should return a string',() => {
const result = getStrFun()
expect(result).toEqual(expect.any(String))
})
})
似乎工作:
<MyClass
✓ should render the component (16ms)
✓ should return the number it is given (1ms)
✓ should return a string (1ms)
我从来没见过像这样的做法在其他地方,但我也没有找到关于如何测试中存在的无线方法很多瘦一类,所以
什么是规范的方式来测试React类的个别方法?
编辑
这些测试很简单,没有任何用处;他们只是这个想法的一个示范。我不是在问他们的用处或者如何为他们设计测试。
您可能要改写这个问题要这样说:“我怎么写我的测试,以避免<任何困扰你对自己目前的形式给出>”。目前你的问题将收集意见而不是答案。 – aaaaaa
@aaaaaa这是一个很好的观点。谢谢。 – 1252748
像getNumFun这样的函数的用途是什么? – k0pernikus