Um den Titel ein wenig zu erweitern, versuche ich zu einer Schlussfolgerung zu gelangen, ob es notwendig ist, reine Funktionen, von denen eine andere Funktion oder Klasse abhängt, explizit zu deklarieren (dh zu injizieren).
Ist ein bestimmter Code weniger testbar oder schlechter konzipiert, wenn er reine Funktionen verwendet, ohne danach zu fragen? Ich mag zu einem Abschluss über die Angelegenheit bekommen, für jede Art von reiner Funktion von einfachen, nativen Funktionen (zB max()
, min()
- unabhängig von der Sprache) , um benutzerdefinierte, kompliziertere, die wiederum implizit auf anderen reinen Funktionen abhängen.
Die übliche Sorge ist, dass wenn ein Code nur eine Abhängigkeit direkt verwendet, Sie diese nicht isoliert testen können, sondern gleichzeitig alle Dinge testen, die Sie stillschweigend mitgebracht haben. Aber das fügt ziemlich viel Boilerplate hinzu, wenn Sie es für jede kleine Funktion tun müssen, also frage ich mich, ob dies immer noch für reine Funktionen gilt und warum oder warum nicht.