角度测试:是否可以对导入模块提供的服务进行存根

时间:2018-11-20 15:42:44

标签: angular unit-testing angular-testing

我正在测试Angular组件,该组件使用另一个模块的成员(它是装饰器)。这就是为什么在创建DynamicTestModule时需要导入另一个模块的原因。导入的模块提供了我想存根的服务。可以使用Angular Testing实用程序吗?或者,也许我可以对整个导入的模块进行存根并确保其存根吗?你能给我一个这样的例子吗?

这是我的测试模块定义:

TestBed.configureTestingModule({
  imports: [TranslationModule],
  declarations: [SomeComponent],
  providers: [
    { provide: Router, useValue: routerSpy },
    { provide: ActivatedRoute, useValue: ActivatedRouteStub },
    { provide: SomeService, useValue: {} },
    { provide: ToastrService, useValue: {} }
  ],
  schemas: [NO_ERRORS_SCHEMA]
});

1 个答案:

答案 0 :(得分:0)

如果您引用“ Someservice”,则在代码顶部添加以下内容:

class SomeserviceStub { // stubbed code }

并更改您的提供程序数组:

{ provide: Someservice, useClass: SomeserviceStub }