C++ Tests Unitaires: les Talons (ne se moque)?
Juste d'entrer dans l'Unité de Test avec le C++. Il semble que je vais avoir besoin d'écrire plusieurs classes stub comme je vais le long. Ma compréhension est qu'il existe une différence entre les Simulacres et les Talons. Fondamentalement, il semble se moque de sont pour quand vous testez quelque chose s'est passé sur l'objet (par exemple, vérification), tandis que les Talons de simplement faciliter votre test. Je crois que pour se moquer, je peux utiliser googlemock mais je ne vois pas quoi que ce soit pour la création d'un bouchon (ala RhinoMocks' GenerateStub).
Est-il un moyen d'obtenir automatiquement les bouchons? Ne googlemock ont aucun soutien pour les talons? Ou dois je suis assez d'avoir à créer manuellement des talons pour les essais?
N'est-ce pas là une sorte de générateur de script python qui peut générer de se moquer des classes?
Sérieusement? Je ne le crois pas. En C++ les gens utilisent ce que les tests sont appropriés pour leur application.
Il n'y a pas de raison de le faire que lorsque tout est possible dans la plaine du C++.
bien sûr, je suppose que c'est pour les paresseux! 😉
OriginalL'auteur User | 2011-06-14
Vous devez vous connecter pour publier un commentaire.
Je pense que la pièce manquante du puzzle, c'est que vous n'avez pas à définir une attente sur une méthode et au lieu de cela, vous pouvez simplement mettre une valeur de retour par défaut.
Se moque de
De toutes les discussions et exemples dans le "Google Fantaisie pour les Nuls" est centrée autour de l'établissement des attentes. Tout parle à l'aide du code semblable au suivant:
Qui est ce que vous voulez pour se moquer, mais pour stubbing vous n'avez pas toutes les attentes. Après la lecture de cette intro, je n'avais aucune idée de comment utiliser googlemock pour cogner.
Talons
ratkok commentaire m'a amené à découvrir comment configurer une valeur de retour par défaut. Voici comment spécifier une valeur de retour pour une moqué de l'objet, mais pas de l'attente:
http://code.google.com/p/googlemock/wiki/CookBook#Setting_the_Default_Actions_for_a_Mock_Method
Il semble googlemock émet un avertissement si vous appelez une méthode qui n'a pas de EXPECT_CALL. Apparemment, vous pouvez éviter cet avertissement en utilisant leur NiceMock construire ou vous pouvez simplement l'ignorer. En outre, il apparaît, vous pouvez éviter l'avertissement à l'aide d'un attendre à la place (je ne suis pas sûr si c'est une bonne idée pour les talons). À partir de la Google se Moquer de la FAQ:
Je crois que c'est exactement ce que je cherchais à comprendre.
Mise à jour
Je peux confirmer que cela fonctionne. J'ai écrit un test de l'unité à l'aide de google test avec googlemock et a été en mesure d'écraser une méthode d'une classe à l'aide ON_CALL.
OriginalL'auteur User
La seule différence entre une Maquette et un Stub est qu'un Simulacre applique comportement, tandis qu'un Talon de ne pas.
Autant que je suis au courant, Google Mock se moque sont en fait des talons par défaut. Ils ne l'appliquer comportement si vous placez des assertions sur les différentes méthodes.
Vous pouvez éviter de créer des attentes dans google maquette en fournissant des valeurs par défaut/comportement. Aussi, google se moquer de cadre vous laisser ignorer inattendu appels afin que vos tests ne manquera pas, si l'attente n'existe pas.
OriginalL'auteur Billy ONeal
A été couvert ici je crois
OriginalL'auteur Dushara
Prendre un coup d'oeil à ceci: stubgen et la discussion similaire ici.
Cette question peut-être utile ou connexe.
Concernant google se moque - nous l'utiliser sur mon projet en cours d'automatiser entièrement la stub de la mise en œuvre. Pratiquement l'ensemble de la stub de la base de code est mis en œuvre à l'aide de google se moque.
OriginalL'auteur ratkok