Die Antwort auf die gestellte Frage ist meiner Meinung nach "Object Oriented" scheint alles zu sein, worüber TDD Leute nachdenken. "
Warum? Ich weiß es nicht. Vielleicht sind sie alle Java-Programmierer, die sich mit der Krankheit angesteckt haben, alles auf sechs Indirektionsschichten, Abhängigkeitsinjektion und Schnittstellenadapter angewiesen zu machen.
Java-Programmierer scheinen es zu lieben, alles im Voraus schwierig zu machen, um "später Zeit zu sparen".
Ich rate, einige Agile Prinzipien auf Ihre TDD anzuwenden: Wenn es kein Problem verursacht, dann reparieren Sie es nicht. Nicht über Design.
In der Praxis finde ich, dass, wenn die statischen Methoden zuerst gut getestet werden, sie nicht die Ursache von Fehlern in ihren Anrufern sein werden.
Wenn die statischen Methoden schnell ausgeführt werden, benötigen sie keinen Mock.
Wenn die statischen Methoden mit Dateien außerhalb des Programms arbeiten, benötigen Sie möglicherweise eine Scheinmethode. In diesem Fall müssten Sie in der Lage sein, viele verschiedene Arten von Funktionsverhalten zu simulieren.
Wenn Sie eine statische Methode verspotten müssen, denken Sie daran, dass es Möglichkeiten gibt, außerhalb der OO-Programmierung zu tun.
Zum Beispiel können Sie Skripte schreiben, um Ihren Quellcode in einem Testformular zu verarbeiten, das Ihre Mock-Funktion aufruft.Sie können verschiedene Objektdateien mit unterschiedlichen Versionen der Funktion in die Testprogramme einbinden. Sie könnten Linkertricks verwenden, um die Funktionsdefinition zu überschreiben (wenn sie nicht inline wurde). Ich bin mir sicher, dass es noch ein paar Tricks gibt, die ich hier nicht aufgelistet habe.
Ich denke, der Begriff, den Sie suchen denn ist eng gekoppelt. –
@Martin: Danke, ich kenne den Begriff, obwohl es allgemeiner ist als das, woran ich hier herankomme. Häufig verwendete Begriffe verlieren oft ihre Bedeutung, weil sie von den Menschen so oft benutzt werden. Deshalb habe ich mich hier für eine Metapher entschieden, in der Hoffnung, dass es klarer wäre. –
Erstes Hören "fest verdrahtet" anstelle von fest verbunden. Es ist absolut genial, wie ein Wechsel in Begriffen zum Verständnis beitragen kann. – jrahhali