0
A
の関数がP
,Q
、R
の3つの関数に依存するシナリオを考えてみましょう。 P, Q, R
は、実際には複雑な計算を行うため、ユニットテストされています。今、私は機能A
をテストする必要があると私は2つの選択肢がある - ユニットテスト関数 - argsとグローバルアクセスのように依存関係を渡す
function A (params) {
... P()
... Q()
... R()
}
PROのから直接
アクセスP, Q, R
:のparamsを除き不要モックを。
CONs:P, Q & R
のロジックを不必要にテストします。
function A (P, Q, R, params) {
... P()
... Q()
... R()
}
PROのに引数として
を注入P, Q, R
:A
は、引数として渡されたようP, Q, R
として、より制御された環境でテストされています。
CONs:モックされた関数を元の関数で最新の状態に更新するために多くの努力が払われています。
どのアプローチが2つの方が優れているか、どのようにしてより良い方法でそれぞれの問題をコントロールできるかを知りたいと思います。
注:A, P, Q, R
はすべてpureです。
多分この[同様のq&a](http://stackoverflow.com/questions/35861372/how-to-test-a-tree-of-pure-function-calls-in-isolation)はあなたに役立ちます – ftor