我有一個組件類包含幾種方法。我希望能夠單獨測試每種方法。到目前爲止,我已經試過各自單獨導出到測試並創建後添加到類,如:有沒有更好的方法來測試一個類的個別方法
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