c - sono - title tag google




Google Test OK per testare il codice C? (4)

È abbastanza comune testare il codice C utilizzando un framework di test C ++, anche il principale libro sull'argomento segue questo approccio. Ho usato googletest ampiamente in passato per il codice C test unitario e posso consigliarlo.

Ho scritto un post sul blog che potrebbe essere utile: http://meekrosoft.wordpress.com/2009/11/09/unit-testing-c-code-with-the-googletest-framework/

Quindi mi piace e mi diverto a utilizzare Google Test per un progetto C ++ in cui sono coinvolto. Sto solo presentando un nuovo progetto che sarà dritto C (una libreria) e finora non vedo alcun motivo per cui non continuare a utilizzare Google Test, anche se è un framework C ++. Avere un compilatore C ++ disponibile non sarà un problema.

Esistono motivi specifici per cui non dovrei utilizzare Google Test per testare il codice C corretto?

Grazie.


Come tutti i codici C ++ di Google, Google Test non utilizza eccezioni, quindi il flusso di sicurezza delle eccezioni non costituirà un problema. Finché le tue intestazioni sono compatibili con C ++ (non usando parole chiave C ++, esportate simboli con linkage corretto), dovrebbe andare bene.


Jason, sii consapevole di quello !!! : D

Come ha detto Meekrosoft, sì, è possibile. Ho anche usato il suo sito web quando ho provato a farlo. Funziona, ma c'è un grosso problema:

GTest è uno strumento orientato agli oggetti e il linguaggio C non lo è!

Ad esempio, in GTest hai un sacco di funzioni (80% di tutta l'API) che richiedono l'oggetto come parametro, ad esempio:

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

dal sito Web GTest https://code.google.com/p/googlemock/wiki/ForDummies modo da utilizzare solo macro come expect_equal, expect_bigger_than e così via ...

Vorrei suggerire lo strumento CMocka (o alcuni altri strumenti di test dell'unità C). È anche da google (modificato da un gruppo di sviluppatori non google) ed è creato direttamente per il linguaggio C. Lo uso quando voglio testare il codice sorgente di tipo C.

Spero che questo aiuti .. :-) Buona giornata .. :-)


Non potrei nominarne uno. Immagino che ci saranno alcune cose che non hai in "normale" CEg Penso che i TestCase derivino da una certa classe. Ma all'interno del test puoi testare quello che vuoi e quindi perché non C?





googletest