首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有相关性的角度测试服务

具有相关性的角度测试服务
EN

Stack Overflow用户
提问于 2017-10-03 15:15:07
回答 2查看 8.4K关注 0票数 10

我有一项服务依赖于另一项服务。我想测试一下。

我的服务:

代码语言:javascript
复制
@Injectable()
export class LanguageService {
constructor(private translate: TranslateService) {

}

我的测试:

代码语言:javascript
复制
describe('LanguageService', () => {
let service: LanguageService;
beforeEach(() => {
TestBed.configureTestingModule({
  providers: [LanguageService]
});

service = TestBed.get(LanguageService);
});

it('should set a preferred language', () => {
  // Some test
});
});

当我运行测试时,我得到了No provider for TranslateService。TranslateService依赖于其他依赖项,等等。

如何添加TranslateService依赖项?有没有办法做到这一点,而不列出它的众多依赖呢?

EN

回答 2

Stack Overflow用户

发布于 2017-10-04 07:12:38

问题是我在LanguageService中使用的是ngx翻译。它需要一些进口才能工作。在我把它们包括进去之后,一切都很顺利。

代码语言:javascript
复制
beforeEach(() => {
TestBed.configureTestingModule({
  imports: [HttpClientModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient]
      }
    })],
  providers: [LanguageService]
});
票数 4
EN

Stack Overflow用户

发布于 2017-10-03 15:19:27

您可以模拟依赖项。

代码语言:javascript
复制
describe('LanguageService', () => {
let service: LanguageService;
class fakeService {};
beforeEach(() => {
TestBed.configureTestingModule({
  providers: [LanguageService, {provide: TranslateService, useValue: fakeService}],
});

service = TestBed.get(LanguageService);
});

it('should set a preferred language', () => {
  // Some test
});
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46547954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档