Skip to the content.

🐱 Node.js

📊 Test unitaire et coverage

RĂ©aliser des tests unitaires est une bonne solution pour s’entraĂźner et mieux comprendre comment un code X ou Y fonctionne (et vous force Ă  Ă©tudier diverses fonctionnalitĂ©s de JavaScript). NĂ©anmoins il peut vite ĂȘtre difficile de s’y retrouver dans un Ă©cosystĂšme oĂč le choix de framework/lib est vaste :

Mocha, Ava, Japa, Tape et beaucoup d’autres


Certains auront l’avantage d’ĂȘtre plus complet (plus lourd) et d’autres plus simpliste. Quelquefois cela se joue sur diffĂ©rents dĂ©tails comme le choix de la librairie d’assertion (Chai.js par exemple) ou bien l’inclusion du coverage par dĂ©faut.

[!WARNING] L’utilisation de Jest pour du testing back-end n’est pas recommandĂ© (mauvaise performance, rĂ©-Ă©criture des globals ..).

Lorsque le coverage n’est pas inclus par dĂ©faut il vous faudra potentiellement rĂ©flĂ©chir Ă  l’inclure vous mĂȘme avec C8 (librairie utilisant le coverage natif de V8 Engine). C8 est notamment capable d’offrir le coverage mĂȘme quand le code est exĂ©cutĂ© au travers de diffĂ©rents child process (ou worker).

Talks et articles:

💃 MĂ©thodologies

De nos jours, il n’est pas rare que les juniors soient forcĂ©s Ă  appliquer des mĂ©thodologies sans que leur mentor n’apporte de rĂ©elle rĂ©flexion ou arguments: “c’est comme ça si tu veux devenir un bon dĂ©veloppeur”.

Je pense qu’apprendre Ă  Ă©crire des tests est essentiel pour un dĂ©veloppeur (et que c’est plutĂŽt sur cette fondation commune que nous devons nous appuyer pour guider les dĂ©butants).

Il est important de conserver un fort esprit critique sur les diffĂ©rents choix que l’on essayera de vous imposer comme des pratiques qu’il faut constamment appliquer car celles-ci vous enferment certainement dans une bulle idĂ©ologique (ce qui n’est pas une invitation Ă  ne rien faire).

Par exemple, apprendre TDD et autres mĂ©thodologies sera bĂ©nĂ©fique pour ajouter des cordes Ă  votre ARC (surtout sur certains projets oĂč leur pratique sera une plus- value). NĂ©anmoins, cela ne veut pas dire qu’elles sont absolues Ă  l’intĂ©gralitĂ© des contextes et projets ou qu’il ne faut pas en dĂ©battre.

Quelques liens pour vous faire une “opinion”:

Dans notre domaine nous parlons trĂšs peu de cela tellement ils sont sujets Ă  des tensions extrĂȘmes entre nous. Je trouve quelquefois dommage que l’on ne puisse pas discuter sans y amener son lot de toxicitĂ© et d’ego.


âŹ…ïž 🐱 Node.js: WebSocket | âžĄïž 🌟 Les diffĂ©rents modules core: Console