59 votes

Différence entre JUnit des Théories et des Tests Paramétrés

Quelle est la différence entre une Théorie et une Paramétré test?

Je ne suis pas intéressé par la mise en œuvre des différences lors de la création des classes de test, juste que lorsque vous choisissez l'un sur l'autre.

28voto

Fabio Kenji Points 453

Ce que je comprends: Avec Paramétrée tests que vous pouvez fournir une série d'entrées statiques, pour un cas de test.

Les théories sont similaires, mais différentes dans le concept. L'idée est de créer des cas de test qui test sur des hypothèses plutôt que des valeurs statiques. Donc, si mon fourni des données de test, selon certaines hypothèses, le résultat affirmation est toujours déterministe. L'une des grandes idées derrière cela est que vous seriez en mesure de fournir un nombre infini de données de test et de vos cas de test serait encore vrai; aussi, souvent, vous avez besoin de tester un univers de possibilités à l'intérieur d'un test de saisie de données, comme les nombres négatifs. Si vous tester de manière statique, qui est, de fournir un peu de nombres négatifs, il n'est pas garanti que votre composant vont à l'encontre de tous les nombres négatifs, même si il est fort probable de le faire.

À partir de ce que je peux dire, xUnit cadres de tenter d'appliquer des théories, des concepts par la création de toutes les combinaisons possibles de votre fourni des données de test.

Les deux doivent être utilisées lors de l'approche d'un scénario dans un data-driven scénario (j'.e que les entrées de changement, mais le test est toujours en train de faire les mêmes constats sur et plus).

Mais, depuis les théories semblent expérimentale, je voudrais utiliser seulement si j'ai besoin de tester une série de combinaisons de mes données d'entrée. Pour tous les autres cas je ne l'utiliserais Paramétrée tests.

11voto

gliptak Points 1322

Parameterized.class les tests de "paramétrer" des tests avec une seule variable, tandis que Theories.class "paramétrer" avec toutes les combinaisons de plusieurs variables.

Pour des exemples, veuillez lire:

http://blogs.oracle.com/jacobc/entry/parameterized_unit_tests_with_junit

http://blog.schauderhaft.de/2010/02/07/junit-theories/

http://blogs.oracle.com/jacobc/entry/junit_theories

Theories.class est similaire à Haskell QuickCheck:

http://en.wikibooks.org/wiki/Haskell/Testing

mais QuickCheck autogenerates combinaisons de paramètres

0voto

Ricardo Gomes Points 322

De ma compréhension de la différence est qu'un Paramétrée Test est utilisé lorsque tout ce que vous voulez faire est de tester un ensemble de différents intrants (test de chacun d'eux individuellement), une Théorie est un cas particulier d'une Paramétré Test qui vous sont test chaque entrée dans son ensemble (chaque paramètre doit être vrai).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X