【问题标题】:Translation service in component test组件测试中的翻译服务
【发布时间】:2016-04-15 15:24:43
【问题描述】:

我正在尝试测试一个所有标签当然都已本地化的组件。 我知道编写测试的最佳方法是模拟依赖项,但在这种情况下,依赖项(其中一个)是一种翻译服务,我想我想在我的测试中注入(而不是模拟)。该服务在应用程序中引导,因此我设法将其注入到我的测试中。

翻译服务.ts

import { Injectable } from 'angular2/core';
import { TranslateService } from 'ng2-translate';

@Injectable()
export class TranslationService {

    constructor( private _translate: TranslateService ) {
        //
     }

     instant( key: string ) {
         return this._translate.instant( key );
     }

     use( lang: string ) {
         this._translate.use( lang );
     }

...

和我的测试:

describe('Login form', () => {
    beforeEachProviders(() => [
        ROUTER_PROVIDERS,
        HTTP_PROVIDERS,
        provide(Router, { useClass: MockRouter }),
        TranslateService,
        TranslationService,
        provide(LoginService, {useClass: MockLoginService}),
        provide(TranslateLoader, {
            useFactory: (http: Http) => new TranslateStaticLoader(http, 'assets/i18n', '.json'),
            deps: [Http]
        }),
        ModuleLoaderService
    ]);

    it('should check translated labels', injectAsync([TestComponentBuilder], (tcb) => {
        return tcb.createAsync(LoginComponent).then((fixture) => {
            fixture.detectChanges();
            let compiled = fixture.debugElement.nativeElement;
            console.log('cccccc', compiled);
            expect(true).toBe(true);
        });
    }));
});

问题一:Karma 找不到要加载的语言环境文件

http://localhost:9876/assets/i18n/en.json资源加载失败:服务器响应状态为404(未找到)

问题 2:即使我会加载该文件,我也不确定我的组件是否会获得这些标签。

我在她(Stack)中看到了一些想法,但它们都是我不熟悉的 Angular 1(并且是 Angular 2 的新手)。

感谢您的任何意见!

【问题讨论】:

    标签: angular karma-jasmine


    【解决方案1】:

    第一个问题:

    在我看来,从 'assets/i18n' 加载不起作用,因为 karma 服务器通常会在前面添加一个 'base' 前缀。

    我认为正确的路径是“base/assets/i18n”或“base/distfolder/assets/i18n”

    【讨论】:

      猜你喜欢
      • 2017-03-25
      • 2017-01-28
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多