2009-11-23 8 views
4

Je développe une grande application en utilisant le framework ExtJS. Parce que ça grandit trop vite, j'ai réalisé que c'était peut-être le moment de commencer les tests. Je veux aller pour la technique BDD, j'ai trouvé plusieurs frameworks BDD pour JavaScript autour (Screw.Unit, JSpec, JSSpec), mais je ne sais toujours pas lequel choisir. Il y a quelques articles sur ce sujet, mais je suis plus intéressé par vos propres expériences/suggestions.Quel framework BDD pour JavaScript utilisez-vous?

Mes questions sont les suivantes:

  • Lequel utilisez-vous et pourquoi?
  • D'autres conseils/astuces sont les bienvenus.
  • Utilisez-vous le sélénium à côté d'un test BDD?
  • Utilisez-vous une autre technique?

Répondre

1

Nous utilisons du sélénium, oui.

J'ai écrit un cadre de test unitaire (bon, la plupart, fonctionnel, pas entièrement connectable) que j'ai utilisé plusieurs fois. Ces sortes de sujets continuent à venir alors peut-être que je devrais le finir ... l'url est

+0

Merci, je vais certainement le vérifier. –

0

J'utilise buster.js parce que je développe dans node.js ainsi que javascript côté client. Il gère les deux scénarios en utilisant une seule API. La documentation manque encore, mais j'aime vraiment le support pour les tests asynchrones.

Buster peut également être utilisé de la même manière que WebDriver de Selenium - vous pouvez asservir plusieurs navigateurs à un «serveur» buster et lancer vos tests dans tous ces navigateurs en même temps.

0

Le test de bande fonctionnelle présente plusieurs défis. Les tests ont tendance à être ...

  1. lent à exécuter (requêtes http sont lentes, dom traversal peut être trop lent)
  2. lent à écrire (écrire un test, lancez l'application, exécutez le test, réalisez que vous avez fait une erreur, recommencez)
  3. difficile à lire (XPath, sélecteurs css, etc.)
  4. cassants (quand bien couplé à votre HTML)
  5. coûteux à entretenir (si vous ne l'utilisez pas une couche d'abstraction, comme le modèle d'objet page)
  6. Non réaliste (lorsqu'il est exécuté dans un faux navigateur)

Pour ces raisons ma pile préférée est

  1. JavaScript - le temps de développement est rapide car il n'y a pas de temps de compilation
  2. CasperJS ou Zombie JS - très rapide, webkit basé (Safari & Chrome [pour l'instant ])
  3. Yadda pour vrai BDD - rend le test facile à lire et fournit une couche d'abstraction, d'atténuer la fragilité et l'entretien

Les inconvénients de cette pile est que vous testez seulement dans webkit, pas firefox, IE ou Chrome (lorsque Google passer à Blink)