Fixtures

Logiciel capture d'écran:
Fixtures
Détails logiciels:
Version: 0.3.14
Date de transfert: 14 Apr 15
Développeur: Robert Collins
Licence: Gratuit
Popularité: 17

Rating: 5.0/5 (Total Votes: 1)

Calendrier est un outil qui définit un contrat de Python pour état logique / support réutilisable, principalement pour les tests unitaires & nbsp;. Helper et la logique d'adaptation est inclus pour le rendre facile à écrire vos propres installations à l'aide du contrat de luminaires. Code de colle est prévu que rend l'utilisation des appareils qui répondent le contrat de Fixtures dans unittest cas de test compatibles facile et simple.
Pourquoi Calendrier
Python Standard unittest.py fournit pas de méthode évidente pour la fabrication et l'état nécessaire dans un cas de test autrement que par l'ajout d'une méthode sur la classe de test réutilisation. Ce échelles mal - fonctions auxiliaires complexes propogating une hiérarchie de classe de test est un motif régulier quand cela est fait. Mocking tout un excellent outil ne se empêche pas cela (et aides pour se moquer des choses complexes peuvent se accumuler dans la même façon se il est placé sur la classe de test).
En définissant un contrat uniforme où les aides ne ont pas de dépendance à la classe de test nous permettons toutes les activités régulières du code d'hygiène aient lieu sans l'influence des effets de distorsion d'être dans une hiérarchie de classe qui est la modélisation d'un tout autre chose - ce est ce qui assistants de TestCase souffrir de.
À propos Calendrier
Un luminaire représente un certain état. Chaque appareil possède des attributs sur ce qui sont spécifiques à l'appareil. Par exemple, un appareil représentant un répertoire qui peut être utilisé pour les fichiers temporaires pourrait avoir un attribut 'path'.
Calendrier Création
Minimalement, sous-classe Fixture, Définir le setup pour initialiser votre état et planifier un nettoyage lorsque le nettoyage est appelé et vous avez terminé:
>>> Unittest d'importation
>>> appareils d'importation
>>> NoddyFixture de classe (fixtures.Fixture):
... Def setUp (auto):
... Super (NoddyFixture, auto) .setUp ()
... Self.frobnozzle = 42
... Self.addCleanup (delattr, auto, 'frobnozzle')
Cette commande va initialiser frobnozzle Lorsque l'installation est appelé, et quand le nettoyage est appelé se débarrasser de l'attribut frobnozzle.
Il est une aide pour adapter une paire de fonction ou fonction dans Calendrier. il met le résultat de la fonction en fn_result:
>>> Os.path d'importation
>>> Shutil d'importation
>>> Tempfile d'importation
>>> Def setup_function ():
... Retourner tempfile.mkdtemp ()
>>> Def teardown_function (luminaire):
... Shutil.rmtree (luminaire)
>>> Luminaire = fixtures.FunctionFixture (setup_function, teardown_function)
>>> Fixture.setUp ()
>>> Print os.path.isdir (fixture.fn_result)
Vrai
>>> Fixture.cleanUp ()
L'API Fixture
L'exemple ci-dessus présente quelques-uns de l'API Fixture. Afin d'être en mesure de nettoyer après un appareil a été utilisé, tous les appareils définissent une méthode de nettoyage qui doit être appelée quand un appareil est fini avec.
Parce que ce est sympa d'être en mesure de construire un ensemble particulier d'appareils connexes à l'avance de leur utilisation, les appareils ont également définir une méthode de configuration qui devrait être appelé avant d'essayer de les utiliser.
Un désir commun avec des installations qui sont coûteux à créer est de les réutiliser dans de nombreux cas de test; pour soutenir cette l'accessoire de base définit également une réinitialisation qui appelle self.cleanUp (); self.setUp (). Calendrier qui peut plus efficacement se faire réutilisable devrait remplacer cette méthode. Cela peut ensuite être utilisé avec l'état de test par l'intermédiaire de multiples choses comme testResources, setUpClass ou setUpModule.
Lorsque vous utilisez un appareil avec un test, vous pouvez appeler manuellement les méthodes d'installation et de nettoyage. Plus pratique est bien d'utiliser la colle inclus à partir fixtures.TestWithFixtures qui fournit une définition mixin useFixture (cas de chameau parce unittest est le cas tout au long de chameau) de la méthode. Il fera appel installation sur l'appareil, appeler self.addCleanup (luminaire) pour planifier un nettoyage, et retourner l'appareil. Cela permet une écriture:
>>> testtools d'importation
>>> Unittest d'importation
Notons que nous utilisons testtools TESTCASE ici comme nous avons besoin de garantir une méthode de TestCase.addCleanup.
& Nbsp; >>> NoddyTest de classe (testtools.TestCase, fixtures.TestWithFixtures):
& Nbsp; ... def test_example (auto):
& Nbsp; ... luminaire = self.useFixture (NoddyFixture ())
& Nbsp; ... self.assertEqual (42, fixture.frobnozzle)
& Nbsp; >>> result = unittest.TestResult ()
& Nbsp;. >>> _ = NoddyTest ('test_example') de fonctionner (résultat)
& Nbsp; >>> imprimer result.wasSuccessful ()
& Nbsp; Vrai
Calendrier de mettre en œuvre le protocole de contexte, de sorte que vous pouvez également utiliser un appareil comme un gestionnaire de contexte:
>>> Avec fixtures.FunctionFixture (setup_function, teardown_function) comme luminaire:
... Imprimer os.path.isdir (fixture.fn_result)
Vrai

Exigences :

  • Python

Logiciel similaire

Tarn
Tarn

14 Apr 15

python-noseenv
python-noseenv

20 Feb 15

Bisect
Bisect

20 Feb 15

Speccer
Speccer

14 Apr 15

D'autres logiciels de développeur Robert Collins

zope_fixtures
zope_fixtures

20 Feb 15

anonymiseip
anonymiseip

20 Feb 15

testrepository
testrepository

20 Feb 15

Commentaires à Fixtures

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!