2

2 つのサービスがあり、そのうちの 1 つは別のサービスに依存しています。

UserService:

@Injectable()
export class UserService {
  constructor(private apiService: ApiService){}
  ...
}

ApiService:

@Injectable()
export class ApiService {
  constructor(){}
  ...
}

だから私の問題は、依存関係をApiServiceテストに挿入するのに苦労していることですUserService. これが私がユーザーサービス仕様に持っているものです。(インポートは省略):

describe('UserService', () => {
  beforeEach(() => {
    addProviders([
      UserService,
      provide(ApiService, {useClass: MockApiService})
    ]);
  });

  it('Should ...', inject([UserService], (service: UserService) => {
    expect(true).toBe(true);
  }));
})

これがスローするエラーは次のとおりです。

Error: Cannot resolve all parameters for 'UserService'(undefined). Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'UserService' is decorated with Injectable.

私も試したのはApiService、 のinject中に を追加することでしitたが、エラーは同じままなので、次のようになります。 it('Should ..., inject([UserService, ApiService] ...))

TypeScript を使用した Angular 2 RC4

4

0 に答える 0