我使用的是Angular CLI+;角2与弹簧启动。我的应用程序按预期运行,没有出现问题。但问题是如果我运行ng测试

我使用的是Angular CLI+;角2与弹簧启动。我的应用程序按预期运行,没有出现问题。但问题是如果我运行ng测试,angular,angular-cli,Angular,Angular Cli,我正在使用Angular CLI+Angular 2搭配弹簧靴。我的应用程序按预期运行,没有出现问题 但问题是,如果我运行ng测试,我会得到以下异常: 无法启动watchman;返回到NodeWatcher以获取文件系统事件。参观http://ember-cli.com/user-guide/#watchman 更多信息。 已成功构建项目。 Stored in "dist". Build successful - 1128ms. 07 07 2016 17:25:14.398:WARN [kar

我正在使用Angular CLI+Angular 2搭配弹簧靴。我的应用程序按预期运行,没有出现问题

但问题是,如果我运行
ng测试
,我会得到以下异常:

无法启动watchman;返回到NodeWatcher以获取文件系统事件。参观http://ember-cli.com/user-guide/#watchman 更多信息。
已成功构建项目。

Stored in "dist". Build successful - 1128ms.
07 07 2016 17:25:14.398:WARN [karma]: No captured browser, open http://localhost:9876/  
07 07 2016 17:25:14.418:INFO [karma]: Karma v0.13.22 server started at 
07 07 2016 17:25:14.423:INFO [launcher]: Starting browser Chrome 07 07 2016 17:25:16.514:
INFO [Chrome 51.0.2704 (Mac OS X 10.11.5)]: Connected on socket /#0TaliUxVtqlcFROBAAAA with id 93440436 

Chrome 51.0.2704 (Mac OS X 10.11.5) AccountSummary Service should ... FAILED
Error: No provider for Http! (AccountSummaryService -> Http)    

错误:DI异常`

,因为angular CLI创建的默认account-summary-service.spec文件没有Http模块的注入

如果注释掉以下代码:

  // beforeEachProviders(() => [AccountSummaryService]);
  //
  // it('should ...',
  //     inject([AccountSummaryService], (service: AccountSummaryService) => {
  //   expect(service).toBeTruthy();
  // }));
不会有错误

在测试中也注入Http服务。此服务的测试如下所示:

describe('AccountSummaryService Service', () => {

  let accountSummaryService: AccountSummaryService;
  let mockBackend: MockBackend;

  const mockHttpProvider = {
    deps: [MockBackend, BaseRequestOptions],
    useFactory: (backend: MockBackend, defaultOptions: BaseRequestOptions) => {
      return new Http(backend, defaultOptions);
    }
  }

  beforeEachProviders(() => [
    MockBackend,
    BaseRequestOptions,
    provide(Http, mockHttpProvider),
    AccountSummaryService
  ]);

  beforeEach(inject([AccountSummaryService, MockBackend], (a, m) => {
    accountSummaryService = a;
    mockBackend = m;
  }));

  it('should ...', async(() => {
      expect(accountSummaryService).toBeTruthy();
  }));
});

从错误
失败错误:没有Http提供程序!(AccountSummaryService->Http)
尝试从'@angular/Http'导入{Http_PROVIDERS};引导(AppComponent,[HTTP_提供程序])在你的main.t你能接受正确的答案吗?或者如果有一些问题我没有涉及,现在让我来回答。