2010-11-14 24 views
11

Est-ce que les frameworks de test JavaScript fournissent un équivalent approximatif du doctest de Python?Comment exécuter des doctests (de type Python) en JavaScript?

function add(a, b) { 
    /** 
    Returns the sum of `a` and `b`: 

    > add(1, 3) 
    4 

    Add coerces types to numeric values where possible: 

    > add('51' + 3) 
    54 
    */ 
    return (a - 0) + (b - 0); 
} 
+0

Pouvez-vous ajouter plus de détails? À première vue, cela ressemblait à http://stackoverflow.com/questions/4180224/what-is-the-standard-way-of-adding-documentation-to-a-javascript-function. –

+0

Cette question se réfère à doctests, cette question se réfère à docstrings. Ils sont fondamentalement différents, bien qu'ils se produisent dans les commentaires. –

+0

"Comment exécuter des doctests (Python) en JavaScript?" me fait penser que vous voulez exécuter du code Python en JavaScript. Je pense que vous pouvez supprimer le "(Python)" du titre de votre question. –

Répondre

2

Je ne sais pas ce que je fumais hier. Soory.

doctestjs (doctestjs on github) est le lien correct et il semble être en développement actif aussi.

Bien que cela fonctionne un peu différemment du doctest python, avec doctestjs, vous déclarez les tests dans un fichier HTML afin qu'ils puissent être exécutés.

Mais je suppose qu'il devrait être possible de déclarer le test en ligne dans votre code. Ensuite, effectuez une étape de prétraitement dans votre processus de génération pour extraire les tests et créer automagiquement un test-html à partir de ces processus.

Par exemple, en utilisant la fourmi, j'imagine un fichier de copie d'application, replaceregexp, concat. par exemple. copier le fichier js, remplacer tout ce qui n'est pas un commentaire et tous les commentaires qui ne ressemblent pas aux tests de doctestjs. puis concat htmlhead + tests + headfooter fait.

+1

Vraiment? 'JDocTest' est pour Java,' jsdoc-toolkit' ne semble pas avoir de fonctionnalités de test intégrées http://code.google.com/p/jsdoc-toolkit/w/list?can=2&q=test. –

+0

Mis à jour mon message – jitter

+0

merci de regarder dans les choses –

12

Je ne peux pas obtenir le point du paquet de Ian Bicking, doctestjs. Il nous fournit simplement une manière différente d'écrire des tests externes normaux, pas de vrais doctests.

J'utilise beaucoup de doctests python, ils sont assez importants pour moi, je ne sais pas pour quoi doctestjs pourrait être utile, mais j'ai trouvé quelques vrais doctests implémentés avec ce projet: https://github.com/davidchambers/doctest.

Même si ce n'est pas le projet doctest le plus à la mode pour javascript, je le préfère fortement.


Mise à jour: après plus d'un an depuis cette réponse, j'ai eu l'occasion de contribuer au projet de David Chambers, il est vraiment bien écrit. Je l'ai également utilisé au travail dans une application complexe en utilisant require.js, et pour cela, nous avons ajouté le support pour les modules AMD. Je pense qu'il a également ajouté le support pour les modules Common JS. Ainsi je peux seulement confirmer mon opinion.

+0

Merci. Exactement mon impression de "doctestjs" aussi. – benmcdonald