Behaviour Driven Development java - quel est le cadre à utiliser?
Pour les projets en cours et pour l'amélioration de notre développement, nous avons envisagé l'adoption de TDD que le développement de la philosophie. Alors que des recherches sur les meilleures pratiques et la façon de "vendre" la nouvelle approche de mes collègues/développeurs, je suis tombé sur BDD et il trouve même plus adaptée à ce dont nous aurions besoin, et en quelque sorte être la prochaine itération de TDD. Le problème est que jusqu'à maintenant, j'ai essayé seulement la outil développé par Dan Le Nord, JBehave et je ne peux pas dire que je suis bluffé.
Le programme d'installation me semble lourd et je ne pouvais pas trouver très documentation appropriée pour elle. D'autre part j'ai essayé aussi spock le groovy outil et jusqu'à maintenant j'ai ce genre de.
Q: existe-il des outils appropriés pour être utilisés pour la BDD?
Q: vous utilisez à la place spock et de composer avec la surcharge de l'introduction d'une autre langue?
- Salut Olimpiu, il y a différentes saveurs de la BDD. Serait-il être utile d'inclure également les parties prenantes non techniques? Si oui, qu'en utilisant des outils tels que FitNesse ou Concordion?
- oui, il serait très appréciée pour inclure également accessible à tous les intervenants. Avez-vous expérimenter dans ce sens?
- nous sommes à l'aide de Concordion dans notre équipe. non-technique de l'entreprise, les spécialistes sont les caractéristiques d'écriture avec gratuitement un éditeur html WYSIWYG (microsoft.com/en-us/download/details.aspx?id=36179). les spécifications sont ensuite instrumenté par les développeurs pour créer des tests d'acceptation automatique.
Vous devez vous connecter pour publier un commentaire.
Behaviour Driven Development est juste une technique qui peut être utilisée sans aucun outils. Vous pouvez simplement écrire des tests en BDD style - par exemple, démarrer méthodes d'essai avec
should
et introduire de la fonction séparée avec cette méthode.When
etthen
les sections peuvent être remplacés par de simples remarques, par exempleMon avis sur les frameworks mentionnés:
Le problème avec JBehave est que les tests de ressembler à un vaisseau spatial complexe. D'autre part, il a assez de sortie de votre cahier des charges.
spock est vraiment cool. Syntaxe compacte, jolie sortie, beaucoup de fonctionnalités, écrit avec le puissant langage groovy, ce qui signifie la possibilité d'une utilisation en conjonction avec geb. MAIS c'est groovy et il peut être très important pour quelqu'un.
scalatest (écrit avec scala) et easyb (écrit avec groovy) les deux ont le même inconvénient que spock. L' "... devrait ..." et "Donné...Puis" la notation. Les spécifications sont .histoire de fichiers, et l'étape implémentations sont dans des classes Java. Cette approche fonctionne très bien comme une collaboration et un outil de communication pour définir le cahier des charges, mais généralement trop de frais généraux pour le faible niveau de codage.
Je pense aussi que la plupart des succès de la BDD de cadres de Java sont ceux qui ne sont pas écrites en Java, depuis le langage Java n'a pas une telle flexibilité pour le DSL (Domain specific Language) création que Groovy ou Scala a.
Comme l'auteur de JGiven je suis en désaccord avec sody que Java n'a pas assez de flexibilité pour le DSL création. Dans JGiven, BDD, les tests se présente comme suit:
JGiven est utilisé conjointement avec JUnit ou TestNg et de l'écriture de vos tests dans la plaine de Java.
À moins que votre propriétaire du produit/aq/le besoin du client pour être en mesure de lire les tests, d'utiliser Spock. Il est très simple outil, mais améliore la lisibilité de tests. Grâce à ses fonctionnalités puissantes vous n'avez pas besoin de Mockito, Hamcrest ni AssertJ. Et il a une superbe paramétrées tests. En fait, il est "juste" une meilleure JUnit - un outil général pour l'exécution automatique de tâches simples, que ce soit des tests unitaires, tests d'intégration ou de tests d'acceptation.
Craignant Groovy? Pourquoi? Il est très similaire à java. Le plus vous apprenez, plus expressive et la plus courte de votre code. Vos tests sera plus court et plus lisible. Groovy est une passerelle de médicaments pour le meilleur côté de la JVM.
N'aime pas la dynamique des langues? Eh bien, c'est tests, et les tests sont exécutés par le serveur CI après chaque livraison, droit? Si votre code ne fonctionne plus, vous le saurez après quelques minutes. N'avez pas de serveur CI ou non de l'exécution des tests régulièrement? Alors ne vous embêtez pas avec le choix d'un framework de test et d'aller réparer votre processus. Cassé les tests sont inutiles et si vous n'avez pas exécuter les tests régulièrement, ils se cassent vite.
Aller avec JBehave/Concombre si vous en avez besoin; Sinon, utilisez Spock.
Une autre alternative serait de Spectre - voir https://github.com/greghaskins/spectrum
Spectre prend en charge la RSpec/Moka de la syntaxe et dans sa prochaine version sera également en charge de la culture des Cornichons de la syntaxe, avec JUnit la règle de l'intégration (donc, il interagit avec Mockito, Printemps, etc via le
@Rule
et@ClassRule
membres).Divulgation complète, je suis un contributeur de ce projet OS
Exemple:
Spectre sorties hiérarchique des résultats de test dans votre JUnit console. La force est dans en mélangeant la Java de la mise en œuvre de la spécification d'exécution avec la spec définition - ce qui peut être plus direct que les cadres qui s'appuient sur les fichiers de fonctionnalité et collez le code pour les analyser, surtout si il y a un besoin de transmettre les résultats d'un test à l'autre.
Spectre vise à être polyglotte, ce qui devrait sembler familier pour les utilisateurs de plusieurs cadres existants.
Belle discussion! Je ne savais pas JGiven, mais je vais avoir un coup d'oeil à elle.
En plus, je suis l'auteur de COLA Tests, un nouveau cadre qui prend en charge complète des cornichons syntaxe (exactement le même que le Concombre), il est très facile d'installation, spécialement en comparaison avec JBehave et ne nécessite pas de runner JUnit.
Fondamentalement, suffit d'utiliser ce que libs vous êtes déjà utilisé pour!
Voici un exemple de Printemps Contrôleur de Test (les histoires peuvent être chargés à partir d'un fichier):
Donner Ginkgo4j un aller. Il utilise Java 8 lamda pour refléter l'approche utilisée par RSpec de Ruby et Aller de Ginkgo.
Cette bibliothèque vous permet de créer expressif, riche en contenu des tests.
``
``
Prend également en charge le Printemps.
(Divulgation complète. Je suis l'auteur de cette bibliothèque).