1

通常の API 呼び出しではなく、実際の API 呼び出しでコードをテストしたい (API もテストできるので、API を変更するときに JS テストも変更する必要がなく、さらに多くの利点があります)。$httpBackend.expectPOST('http://api.com/login').response(200).

基本的に、メソッドを介してログインし、の機能を介して製品のリストを受け取ることProductsControllerを期待するをテストしたいと考えています。AuthService.login()ui-routerresolve

この場合、loginメソッドは製品の収集に使用する必要があるデータを受け取ります。

4

1 に答える 1

2

ここにある $httpBackend ドキュメントから: https://docs.angularjs.org/api/ngMockE2E/service/ $httpBackend

単体テストとは対照的に、エンド ツー エンドのテスト シナリオや、実際のバックエンド API をモックに置き換えてアプリケーションを開発するシナリオでは、特定のカテゴリの要求がモックをバイパスして発行することが望ましいことがよくあります。実際の http 要求 (たとえば、Web サーバーからテンプレートまたは静的ファイルを取得するため)。この動作でバックエンドを設定するには、respond の代わりに when の passThrough リクエスト ハンドラを使用します

$httpBackend.whenGET(/.*/).passThrough(); のようなものです。十分なはずです。

于 2015-09-02T04:00:14.673 に答える