Stellen Sie sich ein Szenario vor, bei dem eine Funktion A
von drei Funktionen abhängt: P
, Q
und R
. P, Q, R
selbst wurden Unit-getestet, da sie einige wirklich komplexe Berechnungen durchführen. Jetzt muss ich die Funktion A
testen, und ich habe zwei Optionen -Komponententestfunktionen - Übergabe von Abhängigkeiten als Argumente gegenüber dem globalen Zugriff
Zugang P, Q, R
direkt von einem
function A (params) {
... P()
... Q()
... R()
}
PROs: Kein spöttischen erforderlich, außer für params.
CONs: Unnötige Prüfung der Logik von P, Q & R
.
Injekt P, Q, R
als Argumente in A
function A (P, Q, R, params) {
... P()
... Q()
... R()
}
Vorteile:A
wird in einer kontrollierten Umgebung, wie P, Q, R
wie args als bestanden getestet.
CONs: Es wird viel Aufwand betrieben, um die verspotteten Funktionen mit ihren ursprünglichen Funktionen zu aktualisieren.
Ich möchte wissen, welcher Ansatz besser ist und wie ich ihre jeweiligen Nachteile besser kontrollieren kann.
HINWEIS: A, P, Q, R
sind alle pure.
Vielleicht hilft Ihnen dies [ähnliche q & a] (http://stackoverflow.com/questions/35861372/how-to-test-a-tree-of-pure-function-calls-in-isolation) – ftor