2016-08-13 3 views
0

저는 최근이 RC5로 업데이트 된이 시드 프로젝트 인 https://github.com/juliemr/ng2-test-seed을 사용하고 있습니다. package.json에서각도 2 단위 테스트에서 HTTP를 사용합니다.

나는 의존성에 추가 : SRC/테스트/사용자 service_test.ts에서

"@angular/http": "2.0.0-rc.5", 

내가 단위 테스트에서 HTTP를 구성 요소를 사용하려면

그래서 나는 다음과 같은했다 나는 추가 :

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

과 HttpModule을 포함 할 beforeEach 기능을 수정 :

을 는 "그것"기능에

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를 구성 요소를 사용하지 않는 : 최대한 빨리이 beforeEach 기능에 HttpModule을 추가하고 나는이 오류를 가지고 테스트를 실행하려고로 이제

, , 누군가가 Rc5의 단원 테스트에서 Http를 사용하는 방법을 알고 있습니까? 내 서버 서비스에 도달해야합니다.

+1

가'HttpModule' 모듈이 아닌 공급자, 그것은 providers' '에 배치되어서는 안 될 것이다. '가져 오기 : [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

관련 문제