7

ng2-translate を使用して、ドイツ語と英語のオプションでページを翻訳しようとしています。

navbar.component.html

<div id="sidebar-wrapper">
    <div class="side-wrap-div">
        <div class="list-group sidebar-nav">
            <li class="list-group-item borderBottomMenu active" >
                <a href="#">{{ 'PAGE.GENERAL' | translate}}</a>
                <span class="marker-logo"></span>
                <span class="logo allgemein-logo-click" ></span>
            </li>
        </div>
    </div>
</div>

navbar.component.spec.ts

import { TestBed, ComponentFixture, async } from "@angular/core/testing";
import { DebugElement } from "@angular/core";
import { By } from "@angular/platform-browser";
import { SidenavComponent } from "../sidenav/sidenav.component";
import {TranslateService, TranslateModule} from "ng2-translate";


class TranslateServiceMock {
    private lang: string;
    public getTranslation() : string {
        return this.lang;
    }
}
describe('Navbar Component Test', () => {

    let comp:    SidenavComponent;
    let fixture: ComponentFixture<SidenavComponent>;
        
    beforeEach(async(() => {
        TestBed.configureTestingModule({
            declarations: [ SidenavComponent ], // declare the test component

            providers: [ {provide: TranslateService, useClass: TranslateServiceMock} ]
        })
            .compileComponents();
        fixture = TestBed.createComponent(SidenavComponent);

        comp = fixture.componentInstance;

    }));

it('should have a taskview header', () => {
        fixture.detectChanges();

        expect("How to test the getTranslation() here????" ).toContain('General');


    })
});

翻訳が行われており、{{ 'PAGE.GENERAL' | translate}}は適切に翻訳されています。したがって、仕様では、TranslateService の getTranslation() は Json ファイル (en.json & de.json) からデータを取得しています。TranslateServiceMock でこのサービスをモックしています。これをテストするにはどうすればよいですか?何か助けはありますか?

4

1 に答える 1