Fork me on GitHub
#clojure-france
<
2017-04-21
>
nha08:04:08

Je teste les fonctions pure comme en clojure, mais pour les parties visuelles j’utilise devcards. C’est relativement manuel donc pour le moment.

nha08:04:27

mais globalement un peu plus embetant que en clojure c’est vrai

val_waeselynck15:04:30

@romain tout ce qui est UI est assez difficile à tester en général indépendamment de ClojureScript... est ce qu'il te manque un outil en particulier qui serait présent dans le monde Javascript ?

romain15:04:54

@val_waeselynck non non j'ai vu pas mal de solutions possibles, c'est juste que c'est pas aussi user-friendly qu'en clojure et pas aussi immédiat. Là j'ai trouvé une méthode vraiment cool en utilisant devcards, je ferais un article à ce sujet, mais là encore pareil y a quelques manques encore (fixtures ou relancer tous les tests)

romain15:04:18

Après ce n'est pas vraiment pour tester l'UI mais je pense aux SPA ou aux jeux par exemple 🙂

nha16:04:18

@romain quel probleme avec les fixtures? Et relancer les tests peut se faire avec figwheel/boot-reload. Il y a aussi moyen de generer des “captures d’ecran” des devcards entre les differents builds, et de montrer les differences (je ne sais plus ou j’ai vu ca. untangled peut-etre).

nha16:04:12

ca fait un moment que j’ai ete voir, mais je crois que sablono a un exemple de tests + devcards. https://github.com/r0man/sablono/ (il y en a surement d’autres)

romain16:04:23

Les fixtures ne sont pas prises en compte

nha16:04:45

interessant. je n’ai jamais utilise les fixtures en clojurescript. principalement parce que je n’utilise pas component sur le front-end (je trouve que ca a moins d’utilite)

romain16:04:38

je n'ai pas encore fait le test mais par exemple pour faire un jeu où tu initialises des données dans un atom avec reagent par exemple, il faudra utiliser des fixtures ?

nha16:04:50

Si elles ont une valeur a reinitialiser entre chaque test, je suppose que oui. Si c’est une fois pour la duree du test, cela pourrait egalement etre utile. Ceci dit ce n’est pas insurmontable d’ajouter une fonction de (re)initialisation au debut de chaque test. Et il y a peut etre une autre solution specifique a reagent que je ne connais pas.

nha16:04:19

Mais effectivement c’est ennuyant de devoir le faire manuellement alors que les fixtures sont la pour ca 🙂

romain16:04:57

Possible, peut-être même pouvoir importer reagent et refaire les définitions, mais bon ça me parait pas très propre

romain16:04:53

Si ce n'est pas que du SPA, y a moyen de bien séparer UI et logique pour un jeu, je pense notamment à parens of the dead

romain17:04:36

@nha je viens de tester un peu, finalement pas besoin d'avoir une fonction pour relancer tous les tests, puisque c'est mis à jour dès qu'on touche le fichier test ou le fichier src

romain17:04:50

Par contre j'ai toujours dans ma console un vieux Uncaught Error: _registerComponent(...): Target container is not a DOM element.