Angular-cli - 测试服务

时间:2016-11-30 05:55:26

标签: angular karma-jasmine angular-cli

我正在使用angular-cli,并试图进入测试我的服务的习惯,但我似乎无法在这里将服务注入测试我的情况:< / p>

Angular2服务

@Injectable()
export class AppService{
}

Karma Test - V1.3.0

这是正确的语法吗?它似乎在angular2的初始版本中发生了变化。

describe('Tests', () => {
  beforeEach(() => [
    {provide: AppService, useClass: AppService}
  ]);

  it('should create an instance', inject([AppService], (service: AppService) => {
    expect(service).toBeTruthy();
  }));
});

这是正确的语法吗?它似乎在angular2的初始版本中发生了变化。

测试错误

Tests should create an instance FAILED
    Error: No provider for AppService!

我的配置

angular-cli: 1.0.0-beta.21
node: 6.5.0
os: win32 x64

1 个答案:

答案 0 :(得分:3)

如果要注入它,仍然需要使用TestBed来配置Angular测试环境

import { TestBed } from '@angular/core/testing';

beforeEach(() => TestBed.configureTestingModule({
  providers: [ {provide: AppService, useClass: AppService} ]
}));

*注意:**如果服务没有任何其他依赖项,您可能只想忘记Angular配置,只需通过自己实例化服务来进行隔离测试。

let service = new AppService();

另见: