2009-01-29 22 views
6

Jestem profesjonalnym programistą stron internetowych i dlatego jestem przyzwyczajony do używania języków skryptowych wysokiego poziomu i narzędzi testowych. Ostatnio osobiście pracowałem z C i napisałem wiele programów C dla systemów opartych na Uniksie, aby wykonywać różne zadania.Czego używasz do testowania kodu C jednostki?

Jednak nadal nie wpadłem w dobry nastrój testowania tego kodu przez jednostkę i zastanawiałem się, jakich narzędzi używają programatorzy C do tworzenia automatycznych testów do weryfikacji kodu.

+0

To było pytanie, którego szukałem, ale poszukiwania tak naprawdę nie znajdowały. Dzięki! – Mitchell

Odpowiedz

1

Czy testujesz wyłącznie kod C, czy możesz mieszać w C++? Jeśli C++ jest w porządku, prawdopodobnie warto sprawdzić, czy jest to cppunit. Jeśli testujesz bibliotekę, możesz po prostu połączyć twoją bibliotekę z aplikacją testową. Jeśli testujesz aplikację, prawdopodobnie będziesz musiał utworzyć bibliotekę, a następnie połączyć ją z aplikacją i testową jednostką.

1

Miałem to pytanie raz i odkryłem CUnit. Używałem go tylko do małego projektu, ale wydawało się, że jest w porządku. Nie tak blisko jak JUnit czy NUnit, do których jestem przyzwyczajony! Do projektów C++ używam cppunit, który działa całkiem dobrze.

1

CUtest. Jest naprawdę schludny. Mały, nie polega na języku generatora, szybko ... czego nie lubić?

0

Jeśli chcesz tylko mechanizm testowy quick'n'dirty, spojrzeć na assert makro, część ANSI C

+0

Oh hej, i printf też może być użyteczny! : P – hmijail

1

rozważyć użycie CppUTest. Jest napisany w C++, ale ukrywa C++, aby programiści C mogli zignorować C++.

Unity to też tylko testowa wiązka przewodów C. Używa ruby ​​do generowania biegaczy testowych.

Byłbym wolny od CppUnit. Wymaga znajomości języka C++ i każdy test musi być indywidualnie zainstalowany.

James

1

pracuję jako programista i wolę używać CMocka narzędzie do zapewnienia test jednostkowy dla języka C. To proste narzędzie oparte na GTest (głównie testowanie jednostkowe C++) i jest naprawdę łatwe do zrozumienia. Jakiś czas temu zrobiłem badania na najlepsze i najprostsze narzędzie do testowania i zdecydowałem się na to.

Po pewnym czasie pracy z tym jestem naprawdę pewien. Przy użyciu dyrektywy preprocesora

#define MyFunction(iEntry) mock_MyFunction(iEntry) 

można również odcięcie dowolną funkcję, którą chcesz symulować (nawet podstawowe funkcje, takie jak okna sizeof() malloc() i tak dalej).

Po wykonaniu tego kroku wystarczy tylko utworzyć fałszywe funkcje (mock_MyFunction (iEntry)), dołączyć je do projektu i zasymulować ich zachowanie. Preferowanym sposobem jest ustawienie pewnych wartości przed wywołaniem, które powinny zwrócić (will_return_always (mock_MyFunction, 5)). A kiedy ta funkcja zostanie wywołana, zawsze zwróci wartość 5.

Możesz także całkowicie uniknąć języka C++ i pracować z prostym językiem C. Nie należy pamiętać o prostej stronie indeksowej CMocka. Musisz zagłębić się w tę stronę i API narzędzia, aby znaleźć to, czego potrzebujesz .. :) Sprawdź także this za mały samouczek używania CMocka ...

Mam nadzieję, że to pomoże, miłego dnia ..:-)

Powiązane problemy