2017-09-07 19 views
0

私は単体テストを記述していますが、私がテストしているメソッドの1つは、テストの前にBeforeEachで黙って注入している外部依存関係からモジュール変数を使用します実行されます。これらの変数は、標準配列またはJSONのいずれかであり、元の関数では、サービス依存関係のメソッドからの出力に基づいてアクセスされます。モッキングサービスモジュール角度単位テストの変数の依存関係

私はjasmine createSpyとcallFakeを使ってメソッドを嘲笑しましたが、同じ方法でこれらの変数の値を嘲笑しようとしましたが、結果は未定義に戻り、テストは失敗します。

これらの変数の値を疑似する最良の方法はありますか?

変数は、次のように例のために定義されています

var module = { 
    variableOne= [ a, b , c]; 
    variableTwo = {1, 2, 3}; 
}; 

、その後、私がテストしていたサービスメソッドは、例えばによってそれらを呼び出す:あなたのテストでは

DependentService.variableOne[outputOfMockedDependencyMethod]; 

答えて

1

、あなたがサービスを注入するときそれを変更することができます:

it(
    'your desc', 
    inject([YourService], (service: YourService) => { 
    service.mockedValue = {/* all you want */}; 
    })); 
+0

これは私がテストしているサービスのためのインジェクションかdependenc yサービス? Atm私はbeforeEach内の依存関係のための別の注入を持っています。それが私がテストしているサービスの場合は、変数が外部の依存関係から来ていることが重要ですか? – bardsleyta

+0

あなたのサービスユニットのテストについての助けを借りてきました。そして、あなたが前にそれぞれそれをするならば、あなたは私がここに示すのと同じことをすることができます!私は通常、テストケースで直接行う傾向があります。なぜなら、私は通常、私のサービスにいくつかの模擬テストを行います(可能なすべての結果をテストするため)。 – trichetriche

+1

Ok。ありがとう。私はそれが動作するように管理:) – bardsleyta

関連する問題