web-dev-qa-db-ja.com

Angular 2カルマジャスミンテスト)でJSONファイルからモックデータをロードする方法

karma jasmineangular 2のテストケースを書いています

また、データが膨大であるため(コードを確実にクリーンにするため)、別のJSONファイルにデータをモックする要件に遭遇しました。このために私は多くを検索しましたが、適切な解決策を見つけることができませんでした。

MockBackendを使用してHTTPサービスをすでにモックしています。したがって、angular)のHTTPサービスを使用してJSONをロードすることはできません。最終的にリクエストはMockBackendに送られるためです。

それで、jasmine-jqueryやKarma-jasmine-preprocessorのようなサードパーティのlibを使用しない別の方法はありますか? その他のAngular JS 2 way

10
Viraj

同じ問題が発生しました!

最後に、TypeScriptでrequire()関数を直接使用するだけで問題なく機能することに気付きました。 Nodeと@ types/nodeでサポートされています。それ以外の場合は、requireタイプを宣言する必要があります。

Angular 2 Karma Jasmine testでJSONファイルからモックデータをロードするには、次のようにします。

const data: any = require('../../assets/mock-data.json');

PS: Artur Ampilogovへのクレジット

25
Kaloyan Kosev

私も同じことをしようとしています。 System.importは、次のようにJSONのパスを渡すと機能します。

System.import('../../assets/mock-data/mock-data.json')
    .then((json) => {
        console.log(json);
    });

本当に奇妙なのは、変数で動作させることができなかったことです。

let myUrl: string = '../../assets/mock-data/mock-data.json';
System.import(myUrl)
    .then((json) => {
        console.log(json);
    });`
0
phil