2016-05-17 13 views
0

$ routeを注入可能なAngularコントローラのテストを書こうとしています。コントローラの内部では、このオブジェクトを様々な場所で参照します。 $route.current.params

私はこのテストを書くための最善の方法を見つけようとしています。私は$ locationサービスを使ってurlを設定することは動作しません。コントローラ内部にユニットテスト機能が必要なので、テスト中のコントローラのインスタンスを作成する$ controllerサービスが必要です。

私が考えることのできるところは、$ルートサービスを手動でモックすることですが、これはこれまでに行われていたはずの作業のようです。問題は、私は例を見つけることができないようです。私が見つけられる最も近いものは 'Injected $stateParams and $state into jasmine angular js test getting undefined'ですが、これは私の状況ではありません。

もちろん、$ routeを挿入することはできますが、ルートセットの特定のプロパティはありません。これに一般的に受け入れられている方法は何ですか?

答えて

0

ngRouteモジュールでテストされていない(それはありそうもありません)場合を除き、モジュールのサービスを動かして可動部品の量を減らす必要があります。ルート変更 が正常に完了した後$ routeParamsにのみ更新されていることを

注:

$routeParamsサービスはthe manualで述べたいくつかの例外を除いて、$route.current.paramsの直接の代替としてその簡潔さのためにお勧めすることができます。これは、ルート解決機能で $ routeParamsが正しいことに頼ることができないことを意味します。代わりに を使用して、$ route.current.paramsを使用して新しいルートのパラメータにアクセスできます。

関連する問題