J'ai une classe de composant contenant plusieurs méthodes. J'aimerais pouvoir tester chacune de ces méthodes individuellement. Jusqu'à présent, je l'ai essayé d'exporter chacun individuellement à tester et les ajouter à la classe après leur création, comme:Existe-t-il une meilleure méthode pour tester les méthodes individuelles d'une classe?
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
Et puis dans myClass.test.js ont mes tests mis en place
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))
})
})
semble fonctionner:
<MyClass
✓ should render the component (16ms)
✓ should return the number it is given (1ms)
✓ should return a string (1ms)
Je n'ai pas vu une approche comme ça ailleurs, mais je l'ai pas non plus trouvé beaucoup sur la façon de tester les méthodes qui existent wi mince une classe, donc
Quelle est la manière canonique de tester des méthodes individuelles d'une classe Réagir?
Modifier
Ces tests sont simples et ne servent d'aucune utilité; ils sont juste une démonstration de l'idée. Je ne demande pas leur utilité ou comment concevoir des tests pour eux.
Vous voudrez peut-être reformuler la question de dire quelque chose comme « Comment puis-je écrire mes tests pour éviter ». Actuellement, votre question recueillera des opinions plutôt que des réponses. –
aaaaaa
@aaaaaa C'est un bon point. Merci. – 1252748
Quel est le but des fonctions comme 'getNumFun'? – k0pernikus