我正在使用这个种子项目:https://github.com/juliemr/ng2-test-seed,最近更新为角度RC5。在角度2单元测试上使用Http
我想使用在单元测试的HTTP组件所以我做了以下:
在我的package.json添加到依赖关系:
"@angular/http": "2.0.0-rc.5",
在SRC /测试/用户service_test.ts我添加:
import { HttpModule, Http } from '@angular/http';
和修改beforeEach功能包括HTTP模块:
beforeEach(() => {
TestBed.configureTestingModule({
providers: [LoginService, UserService, HttpModule]
});
});
现在,只要我想补充的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组件,有人知道如何在Rc5上使用Http进行单元测试吗?我需要达到我的服务器服务。
'HttpModule'是一个模块,而不是一个提供者,它不应该被放置在'providers'。你尝试过'进口:[HttpModule],供应商:...'? – estus
@estus你的建议似乎是正确的,你可以添加作为答案,并包括必要的导入声明。 – kendaleiv
@kendaleiv当然。 – estus