2010-01-07 6 views
16

Stellen Sie sich vor, ich habe die Header-Dateien zu einem Subsystem, aber keinen Zugriff auf den Quellcode.Suche Code Stub Generator (aus Header-Dateien)

Jetzt möchte ich Stubs generieren, um alle Funktionen in den Header-Dateien (für Testzwecke) deklariert übereinstimmen.

Ich habe einen einfachen Code dafür geschrieben, aber es ist nicht perfekt. Kennt jemand eine frei verfügbare Software, die das macht?


[Update] Fünf Jahre nach der Frage wird diese Frage immer noch upvotes.

Es wurde als Thema geschlossen, was es heute ist (althoguh war es nicht, als es ursprünglich veröffentlicht wurde). Glücklicherweise können wir jetzt nach Software-Empfehlungen fragen: https://softwarerecs.stackexchange.com/

+1

Versuchen Sie, eine Verbindung zu einer Drittanbieter-DLL herzustellen? Wenn ja, können Sie einfach eine .lib zum Verknüpfen erzeugen und dann können Sie ein Werkzeug verwenden, um Klassen/Funktionen zu erhalten, vorausgesetzt, die DLL wurde mit C++ - Name Mangling kompiliert. – user230821

+3

Und die Delphine haben keine Probleme damit? (Sorry, konnte die * Schweinswale * nicht weitergeben). – Tarydon

+1

+1 Ich mache Otter auch kleine "Fehler" ;-) – Mawg

Antwort

6

Ich denke, stubgen kann sein, was Sie suchen.

+0

+1 und die Antwort. Ja, genau das habe ich gesucht. Vielen Dank! – Mawg

+0

Das sah zunächst gut aus (ich habe die gleichen Anforderungen), aber es fällt beim Parsen von Namespace-Deklarationen um. – regomodo

3

Visual Assist X für Visual Studio verfügt über diese Funktionalität, obwohl es nicht automatisiert ist.

Auf der Funktion

Tri ProjectTriOnPlane(Tri* a_Triangle); 

Und dann gehen, wenn die entsprechenden .c oder CPP gefunden wird, zu Refactor (VA X) -> Create Implementation, die eine Implementierung wie so schaffen:

Tri Camera::ProjectTriOnPlane(Tri* a_Triangle) 
{ 

} 

auch Es spielt keine Ich gebe nichts Standard zurück, das ist eine Schande.

+0

Entschuldigung, ich brauche es Bulk automatisiert – Mawg

+0

+1 obwohl.Danke, dass du die Zeit genommen hast, zu antworten. – Mawg

3

Vielleicht Lzz macht was Sie wollen.

+0

vielleicht tut es das. Es erzeugt Header (und Source), aber ich möchte es headers füttern. Wenn es Header nicht als Eingabe erstickt, kann ich die generierten Header ignorieren und nur die generierte Quelle verwenden. Ich werde es versuchen und sich bei Ihnen melden. – Mawg

1

Sie können einen Stub-Generator ziemlich einfach mit Doxygen schreiben. Es ist nicht sehr bekannt, aber es kommt mit einer Hilfs-Bibliothek, die eine sehr schöne Abstraktion über die XML-Ausgabe bietet (siehe).

Wenn Sie das Ende von this header file betrachten, werden Sie sehen, dass Sie nette IStructs, IClass-Objekte erhalten, aus denen Sie ISections dann IMembers auflisten können. Alles sehr einfach und anpassbar nach Ihren Wünschen.

Da ich bezweifle, dass Sie die genauen Stubs erhalten Sie von einem generischen Tool erhalten, könnten Sie besser dran sein, wenn Sie Ihre eigenen mit Doxygen codieren, wie all die schwere Aufhebung der richtigen Syntaxanalyse C++ für Sie getan wird.

Wenn Ihre Testmuster hauptsächlich vom Typ der Methodenparameter abhängen, können Sie wahrscheinlich vollständige Testabschnitte generieren, indem Sie die Parameter der Methode analysieren und entsprechenden Code generieren.