Frage

Ich bin auf der Suche Ansätze zur Einheit Test eingebetteter Systeme Code in C geschrieben.

Zur gleichen Zeit, ich bin auch die Suche nach einem guten UT Rahmen, dass ich verwenden können. Der Rahmen sollte eine ziemlich kleine Anzahl von Abhängigkeiten hat.

Jede große Open-Source-Produkte, die gute UTs haben?

EDIT:

Leute, danke für die Antworten -I wirklich schätzen sie, aber dies nicht direkt beantworten Sie meine Frage:

Wissen Sie, jeder Open Source Code, der C-Unit-Tests verwendet? Ich bin auf der Suche, um zu sehen, wie es gemacht, so dass ich etwas von dem Code lernen kann ...

War es hilfreich?

Lösung

Bearbeiten : Es gibt eine Liste von Projekt mit Prüfung als Unit-Test-Framework auf dem Check Projektseite . Einige Links sind veraltet, aber man kann die Quelle des Unit-Test von scew ; hat man die Quelle für andere zum Download bereit.


minunit hat keine Abhängigkeiten überhaupt und kann als Basis verwendet werden Ihren eigenen Rahmen zu bauen.

Was ein Ansatz betrifft, so gehe ich von den niedrigsten Level-Funktionen (die Blätter). Sehr oft, wenn ich die Prüfung der höheren Ebene Funktion, die sie aufrufen, um die unteren Level-Funktionen. Dies ist kein Problem, da die unteren Funktionen bereits geprüft worden sind.

I Modularisierung auch den Code als „Objekt“ oder Tabelle von Objekten. Stub-Funktionen können in Isolation von der Hardware oder anderer Komponenten zu testen.

Ich werde mit einem der statischen befreien definieren, entfernen sie, oder ich schließe die Quelldatei, die Funktionen enthält, in die Unit-Tests Quelldatei getestet werden.

#if defined(UNIT_TESTING)
#define STATIC
#else
#define STATIC static
#endif

Keine Raketenwissenschaft hier aber dies funktioniert der Trick.

Eine letzte Sache, Test des Verhalten, nicht die Umsetzung so, dass die Unit-Tests nicht brechen, wenn die Umsetzung Änderungen.

Andere Tipps

Ihren Code modular derart, dass es eine dünne Schicht im Boden ist, die über die Details der zugrunde liegenden Hardware kennt. Diese Schicht kann dann auf einem normalen PC verspottet werden. Auf diese Weise können Sie normale Einheit Testbibliotheken für Desktop-Entwicklung verwenden, um alle Codes, außer dass dünne Bodenschicht zu testen.

Meine Erfahrung Embedded-Software für Linux auf die Entwicklung wird mit C ++ und nicht einfach C. Wir haben cppunit für Unit-Tests.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top