コントローラーがロードされたときに実行されるロジックを持つコントローラーがあります。AngularJS 1.2xコントローラー負荷のジャスミンテストロジック
このロジックは、サービス内の値をチェックし、値に応じてアクションを実行します。
if(FunkyService.foo()) {
doA();
} else {
doB();
}
は、私は(私のサービスの関数foo()でtrueまたはfalseこの例では)サービスを持つことができ、各値のために成果をテストすることができジャスミンテストを書きたいです。
私の問題は、コントローラーがbeforeEach()関数でロードされていることです。これは、テストでサービスの値を切り替えるには遅すぎることを意味します。 beforeEach()でfoo()関数の結果を設定した場合、真と偽の両方の結果をテストする方法を理解できません。
私には2つの質問があります。
コントローラをテストのいずれかに再ロードするにはどうすればよいですか?これにより、サービスfoo()関数の戻り値を変更して、ロード時にコントローラがロジックを再実行するように強制できます。
これとはまったく異なる方法で接近する必要がありますか?私は、別の中に置かれた任意の活性化またはコントローラレベルの変更を行ってきたすべてのユニットテストでは
ありがとうございました!これは完全に機能しました – Stephen