angular - ngx-translate 如何测试组件

标签 angular typescript testing internationalization ngx-translate

我有一个使用这个库的应用程序。我如何用它测试组件?我不想测试图书馆。我只需要开始测试我的组件,而不会出现关于 TranslateModule、TranslateService、TranslateStore 的多个错误...直到我在编译时遇到错误。

是否有一种简单的方法可以使用这种依赖项来运行我的测试?

再一次,我不想测试这个库(检查字符串是否被翻译)我需要在依赖这个库的组件上运行测试。

最佳答案

对我来说,ngx-translate-testing 效果很好 https://www.npmjs.com/package/ngx-translate-testing

首先

import { TranslateTestingModule } from 'ngx-translate-testing';

然后

  imports: [
    ...
    TranslateTestingModule.withTranslations({ en: require('src/assets/i18n/en.json'), de: require('src/assets/i18n/de.json') })
  ], 

然后测试

  it('should render german title', inject([TranslateService], (translateService: TranslateService) => {
    translateService.setDefaultLang('de');
    const fixture = TestBed.createComponent(AppComponent);
    fixture.detectChanges();
    const compiled = fixture.debugElement.nativeElement;
    expect(compiled.querySelector('.title').textContent).toContain('GERMANTITLE');
  }));

关于angular - ngx-translate 如何测试组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53370590/

相关文章:

angular - 如何使用 ng5-slider 和 cypress 测试表单?

Angular 2 - 将变量传递给 ng-template

testing - Cypress :键入 Tab 键

java - 使用 Serenity 报告的参数化 Junit 测试

javascript - 如何将排序后的数据分配给不可变对象(immutable对象)

angular - Angular2 中 ngFor 循环内的本地模板临时变量

javascript - 包含将发布到 npm 的 js 包的 Typescript 类型的正确方法是什么?

typescript - 是否有可互操作的浏览器扩展对象的@types?

javascript - Angular 4路由添加组件而不是替换它

azure - 在 github 上自动运行集成测试