Javascript 如何在Angular 2中模拟泛型类

Javascript 如何在Angular 2中模拟泛型类,javascript,unit-testing,angular,typescript,karma-runner,Javascript,Unit Testing,Angular,Typescript,Karma Runner,我想模拟的课程有: class Class<T>{ ... } @Injectable() Manager() { ... } 怎么了?看来应该行得通。当我删除MyClass的提供行(因为它不是angular Injectable()服务)时,我得到了提供程序错误。如何解决这个问题 使用useValue而不是useClass,并为其分配一个FakeClass的实例,而不是类。这个错误似乎与泛型无关,而是构造函数接受了一个参数,这个参数应该是一个提供程序,而没有提供程序。 clas

我想模拟的课程有:

class Class<T>{ ... }

@Injectable()
Manager() { ... }

怎么了?看来应该行得通。当我删除MyClass的提供行(因为它不是angular Injectable()服务)时,我得到了提供程序错误。如何解决这个问题

使用
useValue
而不是
useClass
,并为其分配一个
FakeClass
的实例,而不是类。这个错误似乎与泛型无关,而是构造函数接受了一个参数,这个参数应该是一个提供程序,而没有提供程序。
class FakeClass<T> {

constructor(public optionsForConstructor) {
.. do sth mock some methods etc.
}

 class FakeManager {

  public something;

  constructor() {
  public something: any = new FakeManager({
  ..some options not important here .. 
  });
}
fdescribe('A test', () => {

let INTERVAL: number = 5000;

beforeEach(() => {
addProviders([
  SUT,
  {provide: MyClass, useClass: FakeClass<T>},
  {provide: Manager, useClass: FakeMapIncidentController},
]);

});

  fit('Should test something',
inject([MyClass, Manager], (myClass, manager) => {

   let SUT = new SUT(manager); // my SUT constructor needs Manager instance

   expect(true).toBe(true);
}));
Cannot resolve all parameters for 'MyClass'(?). 
Make sure that all the    parameters are decorated with
Inject or have valid type annotations
and that 'MyClass' is decorated with Injectable. in...