2017-05-11 7 views
2

NativeScript Angular 2アプリケーションで非常に簡単なコンポーネントテストを実行する際に問題が発生しています。私はちょうど "新しいコンポーネント()"を呼び出すことはできませんし、thisテストの例で示されたようにそれをテストするように見えることはできません。私はコンポーネントにアクセスするためにAngular 2 TestBedの実装を試みています。これはどちらも機能していないようです。誰も似たような問題に遭遇したことがありますか、これに関して何か経験がありますか?NativeScript Angular2アプリのテストコンポーネント

コンポーネントテスト中:

import { Component } from "@angular/core"; 
@Component({ 
    selector: "links", 
    templateUrl: "./components/links/links.component.html" 
}) 

export class LinksComponent { 
    test = "test"; 

    public constructor() { 

    } 
} 

テスト:

import "reflect-metadata"; 
import { LinksComponent } from "../../components/links/links.component"; 
import { ComponentFixture, TestBed } from '@angular/core/testing'; 

describe("Links Component",() => { 

    let comp: LinksComponent; 
    let fixture: ComponentFixture<LinksComponent>; 

    beforeEach(() => { 
     TestBed.configureTestingModule({ 
      declarations: [ LinksComponent ], 
     }); 

     fixture = TestBed.createComponent(LinksComponent); 

     comp = fixture.componentInstance; 
    }); 

    it("will pass because this is a silly test",() => { 
     expect(comp.test).toEqual("test"); 
    }) 
}); 

ログ出力:

NativeScript/10.3 (10.3; iPhone) ../../tests/components/links.spec.js at line 0 FAILED 
ReferenceError: Can't find variable: Zone 
NativeScript/10.3 (10.3; iPhone): Executed 1 of 0 (1 FAILED) (0 secs/0 seNativeScript/10.3 (10.3; iPhone): Executed 1 of 0 (1 FAILED) ERROR (0.008 secs/0 secs) 
CONSOLE LOG file:///app/tns_modules/nativescript-unit-test-runner/main-view-model.js:258:24: NSUTR: completeAck 
May 11 16:16:43 --- last message repeated 1 time --- 
CONSOLE LOG file:///app/tns_modules/nativescript-unit-test-runner/main-view-model.js:90:28: NSUTR-socket.io: io server disconnect 
CONSOLE LOG file:///app/tns_modules/nativescript-unit-test-runner/main-view-model.js:151:24: NSUTR: disregarding second execution 
Test run failed. 
+2

まだサポートされていませんコミュニティメンバーによる解決方法については、リンクされている問題のディスカッションをご覧くださいhttps://github.com/NativeScript/nativescript-angular/issues/479#issuecomment-265966999 –

答えて

2

私の知る限りTestbedはNativeScript角度上では動作しません。 newでインスタンス化する必要があるコンポーネントをモックするには、各依存関係を解決します。

NativeScriptでユニットテストを行うには、このrepositoryを調べる必要があります。

+0

あなたは正しいです。私はいくつかのユーザーがそれを作ったのを見ましたが、これはよりよいアプローチのようです。最初は、これを試していて、karma.configにTypeScriptファイルしか指定していませんでした。画面にエラーがあります。 TypeScriptファイルを削除してトランスファイルされたJSファイルを追加すると、テストは正常に実行されます。正しい方向に私を指してくれてありがとう! – jab88

関連する問題