Ich verwende eine Drittanbieter-Bibliothek, die ein Wrapper über einige C-Funktionen ist. Leider sind fast alle Go-Funktionen frei (sie haben keinen Empfänger, sie sind keine Methoden); nicht der Design-Ansatz hätte ich genommen, aber es ist was ich habe.Golang testen mit Funktionen
Mit nur Gos Standard „Test“ Bibliothek:
Gibt es eine Lösung, die ich Tests erstellen kann, wo ich Funktionen verspotten?
Oder ist die Lösung, um die Bibliothek in Strukturen und Schnittstellen zu wickeln, dann die Schnittstelle zu verspotten, um mein Ziel zu erreichen?
Ich habe eine Monte-Carlo-Simulation erstellt, die auch die erzeugte Datenmenge verarbeiten. Einer meiner Auswertealgorithmen sucht nach bestimmten Modellen, die er dann zur Bewertung an die Drittanbieterfunktion übergibt. Ich kenne meine Randfälle und weiß, was der Anruf zählt, und das möchte ich testen.
Vielleicht ist nur ein einfacher Zähler erforderlich?
Andere Projekte, die diese Bibliothek verwenden, die ich gefunden habe, haben keine vollständige Abdeckung oder gar keine Tests.
Was sind "freie" Funktionen? – JimB
Funktionen ohne Go-Empfänger. Sie sind nicht an eine Struktur gebunden. – RomaH
Also meinst du "Funktionen", da alles mit einem Empfänger als eine Methode betrachtet werden würde. Funktionen werden häufig in den meisten Fällen verwendet, und es gibt nichts, was diese davon abhält, getestet zu werden. Was genau willst du verspotten? Go nimmt normalerweise nicht den "Spott-alles" -Typ, den manche Sprachen benutzen, was oft dazu führt, dass die Mocks mehr als alles andere nützlich getestet werden. – JimB