2016-08-13 11 views
0

私はこの種のプロジェクトを使用しています:https://github.com/juliemr/ng2-test-seed最近角度のRC5に更新されました。角度2ユニットテストでHttpを使用

私は、私は次のようでしたので、ユニットテストでHTTPコンポーネントを使用したい:私は依存関係に追加

package.jsonで:

のsrc /テスト/ユーザーservice_test.tsで
"@angular/http": "2.0.0-rc.5", 

私が追加:

import { HttpModule, Http } from '@angular/http'; 

とHttpModuleをを含むようにbeforeEach機能を修飾:

beforeEach(() => { 
    TestBed.configureTestingModule({ 
     providers: [LoginService, UserService, HttpModule] 
    }); 
    }); 

さて、できるだけ早く私はbeforeEach機能でHttpModuleをを追加し、私はこのエラーを得たテストを実行しようとして:

13 08 2016 09:13:27.609:WARN [web-server]: 404: /base/node_modules/@angular/http 
Missing error handler on `socket`. 
TypeError: (msg || "").replace is not a function 
    at /home/david/Workspace/ng2-seed/node_modules/karma/lib/reporter.js:45:23 
    at onBrowserError (/home/david/Workspace/ng2-seed/node_modules/karma/lib/reporters/base.js:58:60) 
    at null.<anonymous> (/home/david/Workspace/ng2-seed/node_modules/karma/lib/events.js:13:22) 
    at emitTwo (events.js:87:13) 
    at emit (events.js:172:7) 
    at onKarmaError (/home/david/Workspace/ng2-seed/node_modules/karma/lib/browser.js:95:13) 
    at Socket.<anonymous> (/home/david/Workspace/ng2-seed/node_modules/karma/lib/events.js:13:22) 
    at emitOne (events.js:82:20) 
    at Socket.emit (events.js:169:7) 
    at Socket.onevent (/home/david/Workspace/ng2-seed/node_modules/socket.io/lib/socket.js:335:8) 
    at Socket.onpacket (/home/david/Workspace/ng2-seed/node_modules/socket.io/lib/socket.js:295:12) 
    at Client.ondecoded (/home/david/Workspace/ng2-seed/node_modules/socket.io/lib/client.js:193:14) 
    at Decoder.Emitter.emit (/home/david/Workspace/ng2-seed/node_modules/component-emitter/index.js:134:20) 
    at Decoder.add (/home/david/Workspace/ng2-seed/node_modules/socket.io-parser/index.js:247:12) 
    at Client.ondata (/home/david/Workspace/ng2-seed/node_modules/socket.io/lib/client.js:175:18) 
    at emitOne (events.js:77:13) 

私はまだ「それ」機能でHTTPコンポーネントを使用していませんよ誰かがRc5の単体テストでHttpを使う方法を知っていますか?私は私のサーバーサービスに到達する必要があります。

+1

が 'HttpModule'モジュールではなく、提供して、それはproviders''内に配置されるべきではないであるべきです。あなたは 'import:[HttpModule]、providers:...'を試みましたか? – estus

+0

@estusあなたの提案は正しいと思われます。答えとして追加し、必要なimport文も含めてください。 – kendaleiv

+0

@kendaleiv – estus

答えて

1

TestBed.configureTestingModuleは、モジュール定義オブジェクトを引数として想定しています。 According to the manual、インポートモジュールはimportsプロパティとして表示され、それは

TestBed.configureTestingModule({ 
    imports: [HttpModule], 
    providers: [LoginService, UserService] 
}); 
+0

あなたの解決策は正しいですが、karma-test-shim.jsに '@ angular/http'を含めることも必要でした:{ main: 'index.js'、 defaultExtension: 'js' } – david

関連する問題