2017-03-08 6 views
1

以下に似たAngular 2サービスがあります。これは正しく機能しますが、単体テストを実行しても(期待していなくても)、次のTypeErrorで失敗します。私のサービスはTypeScriptで書かれており、正しいインポートがあります。しかし、1つのノードモジュールがJavaScriptで書かれているので(module.export = ....)、インポートすることはできず、代わりに 'require'する必要があります。私はこれを模倣するか、それを正しく注入してユニットテストで失敗しないようにする方法が不思議です。実際にはうまく動作しますが、テストケースが失敗するだけです。Angular 2仕様ファイルのrequire()の扱い方

角度2 Servive:

let x = require('some-file') 

@Injectable() 
export class MyService { 
    constructor() { 
    x(foo) 
    } 
} 

角度2テストファイル:

describe('Service: MyService',() => { 

    let service: MyService; 

    beforeEach(() => { 
    TestBed.configureTestingModule({ 
     providers: [MyService] 
    }); 
    }); 

    beforeEach(inject([NativeBridgeService], s => { 
    service = s; 
    })); 

}); 

例外TypeError:xはあなたがそのLIB用タイピングをintstallしなければならない機能

答えて

0

ではありません。次に、インポート不要のlibを使用できます。試してみてください

npm install @types/<here goes your lib name> 

もし存在しなければ、あなた自身で書き込みしてください。

+0

私が書いたカスタムjsライブラリです。 TypeScriptの型定義ファイルをいくつか追加するだけですか?例えば。 dts? – user2516663

+0

yeap、あなたが作者であれば、d.tsファイルをlib – kit

+0

に置くこともできますが、d.tsファイルは次のように表示されます: export * from 'my-module' – user2516663