Je pense que Jack est le meilleur moqueur cadre du JavaScript, de l'écriture de ce document. La raison principale est que ce qui est bon pour le JavaScript n'est probablement pas ce qui est bon pour un langage fortement typé comme Java.
Beaucoup de JavaScript se moquant de cadres sont inspirés par Java cadres fictifs (comme l'excellent JsMockito, par exemple). Mais le problème avec ces derniers est qu'ils exigent de l'injection de dépendance, parce que c'est la seule façon raisonnable d'utiliser les moqueries en Java. Mais en JavaScript, il existe de NOMBREUSES façons d'utiliser les moqueries, et vous n'êtes pas forcé de recourir à l'injection de dépendance partout.
Par exemple, avec JsMockito, vous avez à faire se moque et puis de transmettre ces objets fantaisie dans votre logiciel sous test (SUT). La CUS a pour appeler directement les objets fantaisie. Par conséquent, vous êtes obligé de code de la CUS comme un constructeur ou une fonction qui prend dans toutes ses dépendances en tant que paramètres. (Parfois, c'est une belle façon de mettre en œuvre, mais pas dans tous les cas. La queue qui remue le chien si votre moqueur cadre de la conception des forces de votre approche de mise en œuvre).
En JavaScript, il est très facile de "détourner" une fonction. Par conséquent, il ya des tonnes de façons de construire quelque chose, de telle sorte que vous pouvez se moquer des parties, sans explicitement l'injection de ses dépendances en elle. Par exemple, Jack permet de se moquer de toute fonction, qu'elle soit publique ou sur un objet local. De là, vous pouvez espionner sur elle, stub, ou à exprimer des attentes sur elle. Le point essentiel est ceci: une fois que vous avez raillé une fonction, TOUS les appels à cette fonction d'origine doivent être adressées à votre fantaisie. En d'autres termes, votre se moque seront toujours utilisés, même si l'original, de l'onu-se moquaient de fonction a été appelée. Comme un résultat, vous n'êtes pas obligé d'injecter des dépendances, bien que vous pouvez certainement le faire dans les cas qui l'exigent.
JavaScript est un langage différent de Java et C#, etc.) Il permet une mise en œuvre différente des idiomes. L'injection de dépendance est encore un précieux outil dans la boîte à outils en JavaScript, mais ce n'est pas le seul jeu en ville plus. Votre moqueur cadre des besoins de connaître et de respecter ce fait. Jack et un couple de d'autres le font, mais de ceux qui le font, Jack semble être la plus mature et riche en fonctionnalités.