Je suis sur le point de s'embarquer sur quelques grands Python Application basée sur le Moteur de projets, et je pense que je devrais vérifier avec un Débordement de Pile de la "sagesse des foules", avant d'engager un test unitaire de la stratégie. J'ai une unité existante cadre de tests (basé sur unittest personnalisé avec les coureurs et les extensions) que je veux utiliser, donc tout ce que les "poids lourds"/"intrusif" comme le nez, webtest, ou gaeunit ne semble pas approprié. L'essentiel des tests unitaires dans ma vision du monde sont extrêmement légers et rapides, ceux qui s'exécutent en un temps très court, afin que je puisse continuer à courir encore et tout le temps sans casser mon rythme de développement (par exemple, pour un autre projet, je reçois 97% ou si la couverture d'une 20K lignes du projet avec plusieurs dizaines de super-tests rapides qui prennent 5 à 7 secondes, le temps écoulé, pour un type d'exécuter, dans l'ensemble (c'est ce que je considère comme un décent suite de petites, unité fast-tests). Je vais avoir plus riches/plus lourd tests bien sûr, tout le chemin à des tests d'intégration avec le sélénium ou le moulin à vent, c'est pas ce que je veux parler;-) -- mon attention dans cette question (et à la plupart de mes efforts de développement;-) est sur le petit appareil léger-les tests à la légère et super-rapide de la couverture de mon code, et non pas sur les plus profondes.
Donc, je pense que ce dont j'ai besoin est essentiellement un ensemble de petites, très léger simulations de différents App Engine sous-systèmes -- banque de données, memcache, requête/réponse des objets et des appels à la webapp gestionnaires, l'utilisateur de la manipulation, de messagerie, &c, à peu près dans cet ordre de priorité. Je n'ai pas trouvé exactement ce que je recherche, il me semble donc que je devrait s'appuyer soit sur le mox, comme je l'ai fait souvent dans le passé, ce qui signifie fondamentalement se moquant de chaque sous-système utilisé dans un test donné, et la configuration de toutes les attentes &c (solide, mais beaucoup de travail à chaque fois, et très sensible à la testé-code interne, c'est à dire très "boîte blanche", y), ou rouler ma propre simulation de chaque sous-système (et de faire des assertions sur la simulation de sous-systèmes " les états dans le cadre des tests unitaires). Ces derniers semble possible, compte tenu de GAE de Python côté fort "stubs" l'architecture... mais je ne peux pas croire que j'ai besoin de renouveler mon propre, c'est à dire, que personne n'est déjà écrit, simple d'esprit simulateurs!-) E. g., de la banque de données, il ressemble à ce que j'ai besoin est plus ou moins la "banque de données sur le fichier" stub qui est déjà partie du kit de développement logiciel, en plus d'une façon de marquer en lecture seule et facile à utiliser des accesseurs pour les assertions à propos de la banque de données de l'état; et ainsi de suite, de sous par sous-système, chacun semble avoir besoin d'une "juste un peu plus" que ce qui est déjà dans le SDK, "perché au sommet" des "stubs" de l'architecture.
Donc, avant de plonger et de passer un jour ou deux de précieux temps de développement "rolling mon propre" simulations de GAE sous-systèmes pour l'unité des fins de test, j'ai pensé que j'avais un double contrôle de la foule et de voir ce qui y ' all pense à cela... ou, s'il y a déjà quelques open source existante ensemble de ces simulateurs que je peux simplement réutiliser (ou peu tweak!-), et que j'ai juste manqué de place dans ma recherche!-)
Edit: pour préciser, si je fais rouler ma part, je ne plan à effet de levier le SDK fourni par les talons lorsque c'est possible; mais par exemple il n'y a pas de stub pour une banque de données qui obtient d'abord lire dans un fichier, mais alors pas enregistré à la fin, donc j'ai besoin de sous-classe et de modifier l'existant (qui d'ailleurs n'offre pas particulièrement commode de façons de faire, affirme sur son état, de même pour le service de messagerie stub, etc). C'est ce que je veux dire par "rolling mon propre" - pas "de réécriture à partir de zéro"!-)
Edit: "pourquoi ne pas GAEUnit" -- GAEUnit est de nice, pour son propre cas, mais l'exécution dev_appserver et voir les résultats dans mon navigateur (ou même via urllib.urlopen) n'est certainement pas ce que je suis après -- je veux utiliser entièrement automatique de l'installation, adaptés pour fonctionner à l'intérieur d'un test-l'exécution d'un cadre qui est basé sur l'extension de unittest, et non "HTTP" dans la voie (dit-cadre définit un "rapide" test comme celui qui, parmi d'autres chose n'est pas de sockets et un minimum d'e/S de disque -- nous simuler ou de se moquer de ces -- via gaeunit je ne pouvait pas faire mieux que la "moyenne" des tests) + pas de moyen pratique pour préremplir le magasin de données pour chaque test (et pas OO de la structure pour aider à personnaliser les choses).