93 votes

Google Test est-il correct pour tester le code C?

Je participe donc à un nouveau projet qui sera directement en C (une bibliothèque) et qui, à ce jour, ne voit aucune raison pourquoi ne pas continuer à utiliser Google Test, même s’il s’agit d’un framework C ++. Avoir un compilateur C ++ disponible ne sera pas un problème.

Existe-t-il des raisons spécifiques pour lesquelles je ne devrais pas utiliser Google Test pour tester du code C simple?

Merci.

89voto

mikelong Points 2034

Il est assez commun pour tester le code en C à l'aide d'un C++ test de cadres, même le premier livre sur le sujet suit cette approche. J'ai utilisé googletest largement dans le passé, à l'unité de test de code en C et il peut recommander.

J'ai écrit un billet de blog sur le sujet qui pourrait être utile: http://meekrosoft.wordpress.com/2009/11/09/unit-testing-c-code-with-the-googletest-framework/

17voto

Alex B Points 34304

Comme tous les codes C ++ de Google, Google Test n'utilise pas d'exceptions. Par conséquent, le flux de sécurité des exceptions ne sera pas un problème. Tant que vos en-têtes sont compatibles avec C ++ (sans utiliser de mots-clés C ++, ni d'exporter les symboles avec une liaison correcte), tout devrait bien se passer.

7voto

Zdeno Pavlik Points 26

Jason, être conscient de cela!!! :D

Comme Meekrosoft dit, oui, c'est possible. J'ai aussi utilisé son site quand j'ai essayé de le faire. Il fonctionne, mais il y a un gros problème:

GTest est opposé orientée outil et langage C n'est-ce pas!

Dans l'exemple, dans GTest vous avez beaucoup de fonctions (80% de l'ensemble des API) qui demande de l'objet en tant que paramètre, par exemple:

EXPECT_CALL(turtle, PenDown())              // turtle is object(class) and PenDown() is method of that object
      .Times(AtLeast(1));

de GTest site web https://code.google.com/p/googlemock/wiki/ForDummies si vous utilisez uniquement des macros comme expect_equal, expect_bigger_than et ainsi de suite...

Je voudrais vous suggérer outil CMocka (ou d'un autre C de tests unitaires, outils). C'est aussi à partir de google (modifié par le groupe de non-les développeurs de google) et il est créé directement pour les C de langue. - Je l'utiliser quand je veux tester C-type de source code.

J'espère que cela aide.. :-) bonne journée.. :-)

2voto

Friedrich Points 4058

Je ne pourrais pas en nommer un. Je pense qu'il y aura des choses que vous n'avez pas dans CEg "normal" Je pense que les TestCases sont dérivés d'une certaine classe. Mais dans le test, vous pouvez tester ce que vous voulez et pourquoi pas C?

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