モジュールの構成関数に提供される注入された定数をオーバーライドしようとすることに対して、私はかなりの時間を費やしてきました。私のコードは次のようになります
common.constant('I18n', <provided by server, comes up as undefined in tests>);
common.config(['I18n', function(I18n) {
console.log("common I18n " + I18n)
}]);
単体テストで I18n が挿入されていることを保証する通常の方法は、次のようにすることです。
module(function($provide) {
$provide.constant('I18n', <mocks>);
});
$provide
これは私のコントローラーでは問題なく動作しますが、config 関数はモジュールの外側にあるものを見ていないようです。モックされた値を取得する代わりに、モジュールの一部として定義された以前の値を取得します。(私たちのテストの場合は未定義です。以下のプランカーでは「foo」です。)
動作中のプランカーが下にあります (コンソールを見てください)。誰かが私が間違っていることを知っていますか?